並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 132件

新着順 人気順

バリデーションの検索結果1 - 40 件 / 132件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

バリデーションに関するエントリは132件あります。 validationprogrammingarticle などが関連タグです。 人気エントリには 『2024年版 HTMLで作るフォームバリデーション - ICS MEDIA』などがあります。
  • 2024年版 HTMLで作るフォームバリデーション - ICS MEDIA

    すべてのフォームが要件を満たしている場合のみ、送信できます。 フォームバリデーションのデザイン 上記の例では最低限のHTMLのみ実装されています。しかし、実際のサイトではバリデーションエラーをユーザーにフィードバックする必要があります。よりユーザビリティの高いフォームでは、以下の点を検討する必要があります。 エラー時のスタイル エラーメッセージの出し方 バリデーションエラーの表示タイミング 以下では、それぞれについて深堀りします。 エラー時のスタイル エラーを検知する方法として、CSSには:valid疑似クラスと:invalid疑似クラスがあります。これらの疑似クラスは『CSS疑似クラスを活用した、モダンでインタラクティブなフォームの作り方』でも紹介されている、バリデーションエラーが起きている要素にのみ適用されるクラスです。 しかし、この疑似クラスには欠点があります。required属性を

      2024年版 HTMLで作るフォームバリデーション - ICS MEDIA
    • Clean Architectureにおいてバリデーションはどこでやるべきか

      クリーンアーキテクチャで web アプリケーションを作る際に、バリデーションはどのレイヤの責務なのか?と悩むことが多いため、それについての考察を行ってみる。 あと、バリデーションについて書いてたはずがドメインロジックとアプリケーションロジックの違いについても結構言及せざるを得ない感じになったので、そのへんの話もしてみる。 結論から言うと バリデーションはどのレイヤの責務なのか?という問い自体が間違いであり、レイヤごとにそのレイヤの責務となるバリデーションを行うべき、というのが今のところの結論。 バリデーションという単語は意味があまりに広い。「意図していないもの/ことを防ぐ」ことはすべてバリデーションと呼ばれている節がある。そのことにより、バリデーションというのはあたかも唯一つの責務であるかのように錯覚しがちだが、そうではない。クリーンアーキテクチャではレイヤによって責務を分担しているが、同

        Clean Architectureにおいてバリデーションはどこでやるべきか
      • Go の入力バリデーションパッケージ ozzo-validation を試した。

        はじめに Go のウェブアプリで使う入力バリデーションに関して、ozzo-validation を検討した。 これまでのバリデーション 普段、仕事では labstack/echo という Go のウェブフレームワークを使う事が多いのだけど、バリデーションに関しては labstack/echo のサンプルに合わせて go-playground/validator を使ってきた。 go-playground/validator は機能も豊富で(一応)痒い所に手は届くのだけど、struct にタグを付けて判定させないといけない。これが実に煩わしい。以前 labstack/echo を使ったサンプルを書いたので、それを見て欲しい。 // Comment is a struct to hold unit of request and response. type Comment struct { I

          Go の入力バリデーションパッケージ ozzo-validation を試した。
        • react-hook-form と zod でバリデーションのその先へ

          どうも、 uzimaru です。 最近、react-hook-form と zod を使っていい感じにやっているのでそれについてまとめようと思います。 react-hook-form で zod を使う 公式から利用する方法が提供されています。 https://www.npmjs.com/package/@hookform/resolvers これを useForm の resolver で利用することで zod が使えるようになります。 zod 以外にも Yup, Superstruct, Joi, io-ts などが利用できます import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import * as z from "zod"; const

            react-hook-form と zod でバリデーションのその先へ
          • フロントエンドとバックエンドの一貫したバリデーションで開発プロセスに調和と効率化をもたらす - Sansan Tech Blog

            技術本部 Digitization部の湯村です。 新規アプリケーション開発で採用したバリデーションロジックの管理方法を紹介します。 1. はじめに 2023年末に以下の技術スタックでデータ化アプリケーションの開発をしました。 フロントエンド: TypeScript + Next.js バックエンド: TypeScript + Express Next.js では App Router を採用しましたが、Server Components、Route Handler は利用せず、ブラウザから Express の API を呼び出す構成にしました。 SPA + API で開発する際の課題 この構成で開発をする際の課題の1つにフロントエンドとバックエンドでのコードの重複があります。 特にバリデーションのロジックの管理方法は頭を悩ませた方も多いはずです。 バリデーションに対するアプローチ バリデー

              フロントエンドとバックエンドの一貫したバリデーションで開発プロセスに調和と効率化をもたらす - Sansan Tech Blog
            • TypeScriptの型定義からバリデーションコードを生成するツールを書いた

              create-validator-tsというTypeScriptの型定義からJSON Schemaを使ったバリデーションコードを生成するツールを書きました。 モチベーション expressなどでAPIを書くときに、Request/Responseが意図したものかどうかをバリデーションする必要があります。 特にreq.queryなどはStringが入ると予想しますが、オブジェクトが入ってくることもあります。 これは、expressの内部で使っているqsというURLクエリのパーサが、オブジェクトや配列へ展開する機能を持っているためです。 expressを使ってるサイトは ?q=text があるときに req.query.q には オブジェクトが入る可能性をちゃんと考慮しないといけない。 ?q[a]=text で req.query.q ; // { a: "text" } になる — azu

                TypeScriptの型定義からバリデーションコードを生成するツールを書いた
              • クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog

                業務委託で STORES の開発をしている @inouetakuya です。 先日 STORES のフロントエンドチーム内でクライアントサイドのバリデーションについて見直す機会があり、特にバリデーションエラーのデータ型をどうするかについての議論が興味深かったので、共有させていただきます。 背景 議論の背景について簡単に触れておくと、STORES のクライアントサイドでは、バリデーションのライブラリとしてこれまで joi-browser を使ってきました。 しかしながら、本家の Node.js 版の joi がブラウザ対応したことにより joi-browser が deprecated になったことを受けて、今後も joi を使い続けるかを検討したところ、 joi-browser と joi の最新バージョンとの間で API の差異がいくつかあり、joi-browser から joi への乗

                  クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog
                • Pythonスキーマバリデーションライブラリ比較 (pydantic, marshmallow, attrs, cerberus) - Attsun blog

                  Pythonスキーマバリデーションライブラリ比較 (pydantic, marshmallow, attrs, cerberus) ウェブAPIの作成など、外部からやってくるデータを安全に捌く上で、スキーマ定義とバリデーションは非常に重要です。 また、特にPythonのような動的型付け言語において、内部でもレイヤをまたぐ場合はきちんと定義されたデータモデルを利用することで、知らない間にデータモデルが変わっていた、というようなケースを防ぐことができます。 Pythonには標準でスキーマバリデーションライブラリがないため3rdパーティのものを使うことになりますが、様々なライブラリがあるので比較してみました。 比較対象のライブラリ概要※Pythonバージョンは3.9.0を利用します。 lib                    versionGithub Star (2020/1/5)memo

                  • Formの送信ログから反省する、 本当は必要だったバリデーションや機能たち

                    サンプルアプリはこちらです。 mockサーバーの起動が必要なので、注意してください。デプロイしているサンプルアプリは、サーバーとの通信をしないので、注意してください。 https://github.com/sadnessOjisan/Form-Museum

                      Formの送信ログから反省する、 本当は必要だったバリデーションや機能たち
                    • インラインバリデーションがフォーム入力の妨げになるケース

                      UX Movementの創立者、ライター。ユーザーに優しいユーザーエクスペリエンスデザインのスキルを読者の方が上達できるよう、UX Movementのブログを作りました。 フォーム入力におけるインラインバリデーションはユーザーの入力完了を妨げている恐れがあります。 インラインバリデーションは問題のあるフィールドのインラインにエラーメッセージを表示します。ユーザーがフォームを送信する前にこれが起動すると、さらなるエラーが発生する原因になり、フォームを完了するのに余計に時間が掛かってしまうことがあります。 送信前にバリデーションをするということ 77名と90名が参加した2つのリサーチによれば、ユーザーが情報を記入したフィールドから離れた瞬間にエラーメッセージを表示すると、フォームを完了するまでにはるかに多くのエラーを犯すことがわかりました。 ユーザーは間違いを瞬時に訂正する機会があったにもかか

                        インラインバリデーションがフォーム入力の妨げになるケース
                      • Pythonのバリデーションライブラリ「Cerberus」のよく使うバリデーションルールをまとめてみた | DevelopersIO

                        概要 CX事業本部の佐藤です。現在携わっている案件では、PythonのバリデーションライブラリのCerberusを導入しています。今回は、実際の開発でよく使うであろうバリデーションをまとめてみました。 Cerberusとは Pythonのオープンソースのバリデーションライブラリです。pythonの dict や list の各属性に対してのバリデーションを簡単に行うことができます。 リポジトリは以下です。 https://github.com/pyeve/cerberus ドキュメントは以下です。 https://docs.python-cerberus.org/en/stable/index.html 基本的な使い方 以下は、型のバリデーションのサンプルです。 v = Validator({'name': {'type': 'string'}}) v.validate({'name':

                          Pythonのバリデーションライブラリ「Cerberus」のよく使うバリデーションルールをまとめてみた | DevelopersIO
                        • テスト駆動で学ぶ Firestoreセキュリティルール の書き方(認証、スキーマ検証、バリデーション) - Qiita

                          テスト駆動で学ぶ Firestoreセキュリティルール の書き方(認証、スキーマ検証、バリデーション)FirebaseJestFirestoreCloudFirestoreTypeScirpt 今までセキュリティルールをあまり書かずセキュリティ的にアレなものを量産していたので、 その反省からFirestoreのセキュリティルールについて学んだことを記します。 2020/12/01 追記 この記事は、以下バージョン時点の情報です。 node: 10.15.3 @firebase/testing: 0.12.3 内容案内 本記事では以下について記載しています。 Firestore セキュリティールールのテスト環境構築方法(TypeScirpt & Jest) ユーザー認証のルール記載方法、テスト方法 スキーマ検証のルール記載方法、テスト方法 値のバリデーションのルール記載方法、テスト方法 コー

                            テスト駆動で学ぶ Firestoreセキュリティルール の書き方(認証、スキーマ検証、バリデーション) - Qiita
                          • Cloud Composerによるデータバリデーション ~常に正確なデータ集計を実現するために~ - ZOZO TECH BLOG

                            こんにちは。ECプラットフォーム部データエンジニアの遠藤です。現在、私は推薦基盤チームに所属して、データ集計基盤の運用やDMP・広告まわりのデータエンジニアリングなどに従事しています。 以前、私たちのチームではクエリ管理にLookerを導入することで、データガバナンスを効かせたデータ集計基盤を実現しました。詳細は、以前紹介したデータ集計基盤については以下の過去記事をご覧ください。 techblog.zozo.com 本記事では、データ集計基盤に「データバリデーション」の機能を加えて常に正確なデータ集計を行えるように改良する手段をお伝えします。 データバリデーションとは バリデーション導入後のデータ集計基盤 ジョブネット構築 テンプレートによる効率的なDAGの作成 DAG間の依存関係の設定方法 バリデーションDAGのタスク構成 まとめ データバリデーションとは データバリデーションとはデータ

                              Cloud Composerによるデータバリデーション ~常に正確なデータ集計を実現するために~ - ZOZO TECH BLOG
                            • CUEによるスキーマやバリデーションのポータビリティ | gihyo.jp

                              この記事は、連載「つきなみGo」の2回目の記事です。 CUEはデータの表現やスキーマ定義やバリデーションなどを行うことができる言語です。元々Google社内で、Borg(現在のKubernetesの前身となったGoogleの社内システム)の設定に使用するために開発された言語が前身となっており、現在はオープンソースとして開発が進んでいる言語です[1]。 CUEは現在まだv0.4.3とマイナーバージョンではありますが、すでにistioにおいてProtobufからOpenAPIを生成する部分で使用されていたり、CI/CDの構築に使用するDaggerというツールの設定ファイルとして採用されています。 弊社(メルカリ)でもCUEをKubernetesなどを含むインフラの抽象化に使用しています(紹介記事①、紹介記事②⁠)⁠。 また、CUEはGoと親和性が高く、GoからCUEへの変換や、CUEの定義をG

                                CUEによるスキーマやバリデーションのポータビリティ | gihyo.jp
                              • Server Actions のフォームバリデーションにおいて useFormState でエラーメッセージを表示する

                                Server Actions のフォームバリデーションにおいて useFormState でエラーメッセージを表示する 2023.10.31 Next.js の Server Actions でフォームを作成する際に、どのような方法でバリデーションを行い、エラーメッセージを表示する際にどのような手段が考えられるでしょうか。プログレッシブエンハンスメントの恩恵を受けるために、サーバーサイドでバリデーションを行いその結果を表示する方法が効果的です。`useFormStatus` フックはこの一連の動作を行うために使用します。 Next.js の Server Actions でフォームを作成する際に、どのような方法でバリデーションを行い、エラーメッセージを表示する際にどのような手段が考えられるでしょうか。 最もシンプルな方法は required 属性や input type="email" な

                                  Server Actions のフォームバリデーションにおいて useFormState でエラーメッセージを表示する
                                • Firebase Authenticationのバリデーション等を新機能「blocking functions」を用いて拡張する - Flatt Security Blog

                                  こんにちは。 セキュリティエンジニアの@okazu-dm です。 この記事は、Firebase Authenticationに2022年7月ごろに追加されたblocking functions という機能についての紹介です。 詳細は後述しますが、blocking functionsはFirebase Authenticationの登録、サインイン処理を拡張するための機能で、この記事では、blocking functionsの概要やリリースされた経緯を紹介し、実際のユースケースも一部サンプルコードと共に例示します。 また、Flatt SecurityではFirebaseで構築されたサーバーレスなアプリケーションへの効果的な脆弱性診断メニューを提供しています。 ご興味のある方はぜひ事例インタビューをご覧ください。 blocking functionsについての概要 blocking funct

                                    Firebase Authenticationのバリデーション等を新機能「blocking functions」を用いて拡張する - Flatt Security Blog
                                  • YAMLファイルはJSON Schemaでバリデーションしよう - Qiita

                                    試験環境であれば上記のような間違いも取り返しがつくのですが、 本番環境は大概デプロイ一発勝負であるが故に、ミスすると取り返しが付きません。 頑張ってチェックしても、人力をすり抜けるミスがありうるというのは非常に心臓に悪いです。 あらかじめ想定した型(スキーマ)がある以上、YAMLファイルもバリデーションすべきです。 YAMLのバリデーションに使える道具はあるか? YAMLのバリデーションというのは、そこまでメジャーな関心事ではないらしく、専用のメジャーなスキーマ技術がぱっと出てきません。 そこでいろいろ調べた結果、下記がとりあえず候補として上がりました。 JSON Schema 良い点 VS Code でサポートされている RedHat からリリースされているプラグインで可能です リアルタイムで補完と検証が効くので、かなり体験がいいです ツール、処理系、ノウハウが豊富 識者が多い スキーマ

                                      YAMLファイルはJSON Schemaでバリデーションしよう - Qiita
                                    • Rails: 個別のバリデーションエラーをErrorオブジェクトにカプセル化する(翻訳)|TechRacho by BPS株式会社

                                      概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Encapsulate each validation error as an Error object | Saeloun Blog 原文公開日: 2020/06/17 著者: Alkesh Ghorpade サイト: Saeloun モデルのsave、create、updateアクションが失敗した場合のRailsのerrorsの表現方法が#32313で変更されました。 変更前 たとえばUserというモデルがあり、そこにfirst_name、last_name、contact_number、emailなどのカラムがあり、どれも必須だとしましょう。Userオブジェクトを作成するときにfirst_nameやcontact_numberをstringとして渡さないと、#errors関数が以下のようなエラーを出力します。 class U

                                        Rails: 個別のバリデーションエラーをErrorオブジェクトにカプセル化する(翻訳)|TechRacho by BPS株式会社
                                      • UTF-8のバリデーションとモノイドと半群

                                        この記事はUTF-8のバリデーションとオートマトンの続きです。 前回はUTF-8のバリデーションが8状態のオートマトン (DFA) で表現できることを見ました。状態と遷移を擬似コードで書けば次のようになるでしょう: -- 8つの状態 data State = START | TAILx1 | TAILx2 | TAILx3 | A | B | C | D -- 入力バイトに応じて次の状態を返す。次の状態が該当しなかったら Nothing を返す next :: Word8 -> State -> Maybe State +----+----+-----+----+ | a0 | a1 | ... | aN | 8ビット整数列 +----+----+-----+----+ | | | v v v +----+----+-----+----+ | m0 | m1 | ... | mN | モノ

                                          UTF-8のバリデーションとモノイドと半群
                                        • GoでCUEのバリデーション機能を利用しつつ、.cue/.json/.yaml形式の設定ファイルを読み込む | フューチャー技術ブログ

                                          GoでCUEのバリデーション機能を利用しつつ、.cue/.json/.yaml形式の設定ファイルを読み込む 人間が読み書きする設定ファイルについて、2つのエントリーを紹介してきました。今回は第3段です。 一周回って、人間が読み書きする設定ファイルはJSONが良いと思った CUEを試して見る 前回のエントリーで、CUEはテキストファイルのフォーマットでありつつもJSON/YAMLと同等の表現力(階層が持てて、文字列や数値などを扱える)を持ち、なおかつCUEコマンドやライブラリでは.cue/.json/.yamlを同列に入力ファイルとして扱えるということを紹介しました。また、.cueファイルにスキーマを定義して、バリデーションが行えることも紹介しました。 今回は、Goのパッケージを利用して、.cue/.json/.yaml形式の設定ファイル読み込み機能をアプリケーションに組み込んでみます。本家

                                            GoでCUEのバリデーション機能を利用しつつ、.cue/.json/.yaml形式の設定ファイルを読み込む | フューチャー技術ブログ
                                          • TypeScriptでの値オブジェクトとフロントエンド・バリデーション - Qiita

                                            この記事はトレタ Advent Calendar 2019の5日目です。 こんにちは、奥野賢太郎 ( @okunokentaro ) です。私は株式会社トレタの社員ではなく、フリーランスのデベロッパーなのですが、今年一年トレタ社のお仕事のお手伝いをさせていただいて、縁がありましてゲスト寄稿的にカレンダーに参加しています。 要約 トレタ社では様々な種類の入力フォームを備えたアプリケーションを運用しています バリデーション処理の分散は修正漏れやバグに直結するので、共通化しましょう 単なる共通化では問題があるため、値オブジェクトに集約しましょう TypeScriptでの値オブジェクトの定義には一工夫が必要です constructor validationの手法を紹介します なにをやっているの? 私はTypeScriptやJavaScriptを専門としたデベロッパーなので、主にフロントエンドや、場

                                              TypeScriptでの値オブジェクトとフロントエンド・バリデーション - Qiita
                                            • Railsでメールアドレスをバリデーションする方法(翻訳)|TechRacho by BPS株式会社

                                              RailsのActive Recordは、意味のあるデータを確実に得られるようにするためのバリデーション機能をActive Modelライブラリ経由で提供しています。 ユーザーにメールを送信可能であることを確認する処理は、アプリケーションを正しく設定するうえで非常に重要なので、既に皆さんもUser#email属性でバリデーションを行っていることでしょう。 🔗 以下の方法ではなく 手作り正規表現や、Railsの古いAPIドキュメントにあるものを使う。 class User < ApplicationRecord validates :email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i }, presence: true, uniqueness: { case_insensitive: true } end

                                                Railsでメールアドレスをバリデーションする方法(翻訳)|TechRacho by BPS株式会社
                                              • UTF-8のバリデーションとオートマトン

                                                UTF-8は今日の文字エンコーディングの中で最も重要なものと言って差し支えないでしょう。UTF-8の仕様はこの辺で確認できます: Unicode 15.1.0 > 3.9 UTF-8 RFC 3629 - UTF-8, a transformation format of ISO 10646 この記事では、読者はすでにUTF-8にある程度の馴染みがあるものとして、UTF-8のバリデーションの細かいところを考えます。 UTF-8のバリデーションを行うには、以下のことを確かめなければなりません: 最初の1バイトが所定の範囲にあること:ASCII (0x00-0x7F) または0xC2以上。 後続のバイト(たち)が0x80-0xBFの範囲にあること。 長すぎないこと:U+007F以下の文字はちょうど1バイトで表現されていること、U+0080以上U+07FF以下の文字はちょうど2バイトで表現されて

                                                  UTF-8のバリデーションとオートマトン
                                                • JSONをTypeScriptの型でバリデーションしたい! - Qiita

                                                  やりたいこと JSONのTypeScriptの型でバリデーションしたいです。定義するコストは最小限にとどめたいです。 具体的には、 文字列になった'{"name": "jack", "age": 8}'などがtype Person = {name: string, age: number}をちゃんと満たしているかを確かめたいです。確かめたあとは、Person型として扱いたいです。 JSONはネットワークから飛んできたりして、それがTypeScriptの型システムの中で安全に使えるか確かめる仕組みがほしいです。 一番この記事で伝えたのは、JSONの構造を一度定義したら、TypeScriptの型を導出する仕組みです。いろんなTypeScriptのバリデーションライブラリ調べてみましたが、型を自動で導出しているものは見つけらなかったです。そのため、その仕組を作って、使い方と実装に関して記事にまと

                                                    JSONをTypeScriptの型でバリデーションしたい! - Qiita
                                                  • URL バリデーションを考えるために - Techtouch Developers Blog

                                                    初めに URL の標準を知るためのポイント あ!やせいの URL がとびだしてきた! ライブラリを比較 validators (Python) regex-weburl.js (Javascript) url.Parse (Go) 最後に 初めに テックタッチアドベントカレンダー 14 日目を担当する izzii です。最近個人 PC の SSD を増設したのですが、CPU やマザボも換装しようかなーなどと考えている今日この頃です。 さて、 Web エンジニアの方ですと、集計処理やセキュリティ運用のために、 URL バリデーション URL エンコーディング URL パース など URL の文字列を操作・評価したことがあるしょう。しかし、抽象化されたライブラリを利用することで、具体的な実装をあまり意識されたことはないのではないでしょうか?というのも自分達で設計した URL を弄る上で壁にぶつ

                                                      URL バリデーションを考えるために - Techtouch Developers Blog
                                                    • コロナの拡大・収束の予測はバリデーションが不可欠 --- 山本 民次

                                                      「ヒトとの接触8割削減をしないと42万人死亡」という西浦氏の発表は極めて衝撃的であった。これは感染症の数理モデルから予測される結末であり、理論モデルとしては間違いではないが、その後いつまで経っても現実のデータとの照合(バリデーション)が行われないまま時間が過ぎた。 現実的には、すでに発症者数が減少に向かい、すでに一部の特定府県を除き、緊急事態宣言が解除されることになった。このこと自体は大いに喜ぶべきことであり、「8割削減」を何としても達成したいという国民全員の我慢強さに敬意を表したい。 5月12日の夜にニコニコ動画で、西浦氏による感染症の数理モデルに関する解説があった。説明は丁寧で分かり易く、好感の持てるものであった。 それはそれとして、私としては必ず、バリデーションが行われるはず、と期待していたので、その期待は大きく裏切られた。 西浦氏には、5点ほどメールで直接質問したが、一週間経っても

                                                        コロナの拡大・収束の予測はバリデーションが不可欠 --- 山本 民次
                                                      • 史上初のdeprecationから最新のバリデーションライブラリまで!TypeScriptの最新動向をうひょさんに聞いてきた

                                                        こんにちは、テックフィード白石です。 日本のエンジニア界隈をリードするエキスパートに、テクノロジーの最前線を語っていただくYouTube動画連載「Ask the Expert」の新着動画が公開されました! 今回は、TypeScriptのエキスパートうひょさんに、TypeScriptの最新動向について詳しく伺ってきました。 うひょさんのアカウントをぜひフォローしましょう! うひょさん(株式会社カオナビ フロントエンドエンジニア) ついでに白石のもフォロー推奨: 聞き手: テックフィード白石 以下に掲載するのは、インタビュー動画の内容の要約です(正確な書き起こしではありません)。 内容をフルにご覧になりたい方は、ぜひ動画をご視聴ください。 (ご質問、ご感想などはYouTubeのコメント、もしくはこの記事のコメント欄でも受け付けております) TypeScript史上初めてのdeprecation

                                                          史上初のdeprecationから最新のバリデーションライブラリまで!TypeScriptの最新動向をうひょさんに聞いてきた
                                                        • Rails 7 で追加されたComparisonValidatorで日付のバリデーションを実装する

                                                          この記事は GMOアドマーケティング Advent Calendar 2022 3日目の記事です。 はじめに こんにちは。 GMOアドマーケティングの石丸(@thomi40)です。 前回の記事では Rails 7 から実装された query_log_tags について紹介しました。 はじめにこんにちは。GMOアドマーケティングの石丸(@thomi40)です。以前、本ブログでRails 6.1に新しく追加された機能について紹介しました。今回はRails 7から追加された「query_log_tags」について紹介します。query_log_tagsとは?query_log_tags は Active Record のオプションの一つで、設定を有効にすることでクエリのログに自動でコメントを追加することができる機能です。元々は「Marginalia」というGemで実装されていた機能とのこと。詳細

                                                            Rails 7 で追加されたComparisonValidatorで日付のバリデーションを実装する
                                                          • Vue.js のフォームバリデーションライブラリ VeeValidate を評価してみた | DevelopersIO

                                                            前職より引き続き Vue.js を用いた開発業務を行っているのですが、毎回必ず発生するフォームバリデーション処理の実装につらみを感じていたので、VeeValidate というライブラリを評価してみました。 前職で Vue.js を用いた開発業務を行っていました。 クラスメソッドに入社後も Vue.js を使った開発業務を担当することになったのですが、フォームバリデーション処理が本質的ではない割に毎回発生することに負担を感じていたので、その辺りを肩代わりしてくれるライブラリを探すことにしました。 その結果 VeeValidate というライブラリが割と引っ掛かり、レビューブログやドキュメントを眺めたりした感じ良さげだったので、評価してみました。 環境情報 Node.js: 12.18.2 Vue.js: 2.6.11 Vuetify: 2.3.3 VeeValidate: 3.3.7 Vue

                                                              Vue.js のフォームバリデーションライブラリ VeeValidate を評価してみた | DevelopersIO
                                                            • 【GraphQL】スキーマ駆動開発におけるバリデーションの取り決め設計パターン集

                                                              ハコベル物流DXシステム開発部のおおいし (@bicstone) です。普段はフロントエンドエンジニアとしてハコベル配車計画の開発を行なっています。 前回の記事では、GraphQLをプロダクトに投入するにあたり検討したエラーレスポンス設計パターンについて紹介しました。 この記事では、フロントエンドとバックエンド間でのバリデーションスキーマの取り決めについて解説します。 GraphQLスキーマ設計で悩まれている方の参考になれば幸いです。 はじめに ハコベル配車計画では、バックエンドとフロントエンド間の通信においてGraphQLを活用しています。1年ほど運用していく中で、設計における課題がいくつか表面化してきました。 今回、社内ハッカソンイベントHackWeek 2023 [1] が開催され、ハコベル配車計画チームでは1年間の運用の中で感じた、GraphQLスキーマの設計における悩みを振り返る

                                                                【GraphQL】スキーマ駆動開発におけるバリデーションの取り決め設計パターン集
                                                              • TypeScriptファーストなバリデーションライブラリ Zodの始め方 - Qiita

                                                                はじめに ここ最近の業務では TypeScript を用いた webフォームの実装を担当させていただいています。 親愛なる上司が TypeScriptファーストなバリデーションライブラリの存在を教えてくださり、「プロダクトでどう使えるか考えてみるのも楽しいかも」とお題をくださったので、今回は手始めにZodの基本的な使い方について記事を書かせていただこうと思います。 Zod とは Zod GitHub: https://github.com/colinhacks/zod TypeScriptファーストなスキーマ宣言・バリデーションライブラリ。 ここでいうスキーマとはデータの型のことで、Zodではスキーマの宣言 → スキーマに沿っているか値を検証 というステップでバリデーションを行います。 公式にもある通り、「parse, don't validate」の思考に基づいた関数型プログラミングのア

                                                                  TypeScriptファーストなバリデーションライブラリ Zodの始め方 - Qiita
                                                                • Zodでファイル(画像)のバリデーションをする

                                                                  const schema = z.object({ file: z.custom<FileList>().transform((file) => file[0]), }); type Schema = z.infer<typeof schema>; /* type Schema = { file: File; } */ 解説 z.custom<FileList>() z.custom() を使う理由は明示的に型を指定したいのと、ぱっと見でどんな型かわかるようにしたいからです。 custom の型は以下のように定義されておりジェネリクスを受け取ります。 受け取ったジェネリクスは各メソッドの引数の型として使われています。 export declare const custom: <T>(check?: ((data: unknown) => any) | undefined, params?:

                                                                    Zodでファイル(画像)のバリデーションをする
                                                                  • MUI v5とReact Hook Form v7でサクッとフォームバリデーションを作る | DevelopersIO

                                                                    MUI(Material UI)v5とReact Hook Form v7でサクッとフォームのバリデーションを作る方法をまとめました! Material-UI v4とReact Fook Form v6を使い続け、幾多の時が過ぎていた浦島太郎状態の片岡です。 今回は新しいプロジェクトを作る際に、MUI v5(v5でMaterial UIからMUIに名称変更)とReact Hook Form v7を採用した結果今までの苦労はなんだったのか・・・となったのでブログにしました! 準備 MUIとReact Hook Formを使ってフォームを作れるようにしていきます。 Reactプロジェクトを作成 適当にプロジェクトを作ります。 yarn create react-app sample-project --template typescript ライブラリをインストール 実際に使うライブラリをイン

                                                                      MUI v5とReact Hook Form v7でサクッとフォームバリデーションを作る | DevelopersIO
                                                                    • Railsバリデーションまとめ - Qiita

                                                                      オブジェクトがDBに保存される前に、そのデータが正しいかどうかを検証する仕組みをバリデーションといいますが、 RailsでActiveRecordを使ってそれを実現するにあたってよく使いそうなのをまとめます。 以下のメソッドにおいてはバリデーションがトリガされます。 create create! save save! update update! 以下のメソッドにおいてはバリデーションはスキップされます。 decrement! decrement_counter increment! increment_counter toggle! touch update_all update_attribute update_column update_columns update_counters Railsでのバリデーショントリガ Railsではvalid?メソッドを実行するとバリデーションが実

                                                                        Railsバリデーションまとめ - Qiita
                                                                      • Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself

                                                                        Rust を読んでいると、さまざまなものに型付けをするコードをよく見かけます。強めに(厳密に)型付けをする文化があるプログラミング言語、と言えるかもれません。 バリデーションチェックに対してもこうした強めの型付けが適用できます。具体的なバリデーションの情報を型情報として落としておくことで、コードを読むだけでバリデーション情報を把握できたり、あるいは誤った値の代入をコンパイルタイムで弾くことができるようになるというメリットを享受できるようになります。 一方で、型情報があまりに複雑化すると、あまりそうした型付け手法に慣れていないプログラマがキャッチアップするのに少し時間がかかったり、あるいはとんでもなく複雑になってそもそもその型を作り切るのが大変というデメリットも生じることになります。 今日紹介する手法は、さまざまなトレードオフの上に成り立つものであり、もし導入の結果、そのプロジェクトにとって

                                                                          Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself
                                                                        • 峰 宗太郎 on Twitter: "#楽天 が #PCR検査 をつかった非常にまずい提案を官邸にしている模様であることが判明👶完全にめちゃくちゃで、やるならしっかりバリデーションされた抗体検査でやる話。PCRでは実現できないし、どうしようもない。倫理観のかけらもいな… https://t.co/GfPORj87rX"

                                                                          #楽天 が #PCR検査 をつかった非常にまずい提案を官邸にしている模様であることが判明👶完全にめちゃくちゃで、やるならしっかりバリデーションされた抗体検査でやる話。PCRでは実現できないし、どうしようもない。倫理観のかけらもいな… https://t.co/GfPORj87rX

                                                                            峰 宗太郎 on Twitter: "#楽天 が #PCR検査 をつかった非常にまずい提案を官邸にしている模様であることが判明👶完全にめちゃくちゃで、やるならしっかりバリデーションされた抗体検査でやる話。PCRでは実現できないし、どうしようもない。倫理観のかけらもいな… https://t.co/GfPORj87rX"
                                                                          • フォームのバリデーションに役立つYupとは? React向けライブラリを解説

                                                                            CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

                                                                              フォームのバリデーションに役立つYupとは? React向けライブラリを解説
                                                                            • Pythonスキーマバリデーションライブラリ比較 (pydantic, marshmallow, attrs, cerberus)

                                                                              Pythonスキーマバリデーションライブラリ比較 (pydantic, marshmallow, attrs, cerberus) ウェブ API の作成など、外部からやってくるデータを安全に捌く上で、スキーマ定義とバリデーションは非常に重要です。 また、特に Python のような動的型付け言語において、内部でもレイヤをまたぐ場合はきちんと定義されたデータモデルを利用することで、知らない間にデータモデルが変わっていた、というようなケースを防ぐことができます。 Python には標準でスキーマバリデーションライブラリがないため 3rd パーティのものを使うことになりますが、様々なライブラリがあるので比較してみました。 比較対象のライブラリ概要※Python バージョンは 3.9.0 を利用します。 lib                    versionGithub Star (202

                                                                                Pythonスキーマバリデーションライブラリ比較 (pydantic, marshmallow, attrs, cerberus)
                                                                              • Reactで使えるバリデーションライブラリを紹介! - bagelee(ベーグリー)

                                                                                はじめに フォームの実装のライブラリはFormik、React Hook Form、React Final Formのどれにしよう…と悩むことは多いと思うのですが、バリデーションを何で行おうというのは考える機会が少ないと思います。 というのも、React Hook FormもFormikもYupを推しているので、あまり調査せずにYupを使う方が多いのではないでしょうか。そもそもReact Hook FormはデフォルトではHTML標準のバリデーション機能を使用しているので、バリデーションライブラリを意識したことないという方もいるかもしれません。 実は非常に多くのバリデーションライブラリがあるので、今回は色々紹介して比較していきます! バリデーションライブラリの種類 ざっと挙げるだけでもこれくらいあります。 ・Joi ・Yup ・zod ・io-ts ・Superstruct ・Vest ま

                                                                                  Reactで使えるバリデーションライブラリを紹介! - bagelee(ベーグリー)
                                                                                • TypeScript(Node.js)のバリデーションライブラリ「Ajv」を使ってみた | DevelopersIO

                                                                                  Ajv(Another JSON Schema Validator)はNode.jsとブラウザ用のバリデーションライブラリです。事前に定義した検証スキーマでデータのバリデーションを行います。また、バリデーションエラーの内容はerrorsプロパティに格納され、バリデーション後に取得することができます。 基本的な使い方 Ajvのインストールとバリデーションの方法を説明します。 インストール npm(Node package manager)でインストールします。なお、型情報も組み込まれているため@types/ajvは必要ありません。 npm install ajv バリデーションを実行 検証スキーマと検証データを定義してバリデーションを実行してみます。 import Ajv from 'ajv'; // インスタンスを作成 const ajv = new Ajv(); // 検証スキーマを定義

                                                                                    TypeScript(Node.js)のバリデーションライブラリ「Ajv」を使ってみた | DevelopersIO

                                                                                  新着記事