並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 119件

新着順 人気順

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

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

バリデーションに関するエントリは119件あります。 TypeScriptvalidation開発 などが関連タグです。 人気エントリには 『バリデーション解体新書 - kawasima』などがあります。
  • バリデーション解体新書 - kawasima

    バリデーション解体新書 2025/4/8に開催した #アーキ部 『バリデーション解体新書』の内容を編集したものです。 バリデーションとは何か? 広義には、 何らかの処理を実施するにあたって、入力データが想定する条件を満たすかを検証する行為 と言える。 この定義で、アプリケーションのどこでバリデーションをしているのかを考えると、以下のように各層にそれが見られる。 このように実装される場所が散らばるので、「バリデーション」や「入力チェック」を分類して開発ガイドラインを作ることが多い。 例えば、大規模Java開発向けのTERASOLUNA開発ガイドラインを見てみると、 ユーザーが入力した値が不正かどうかを検証することは必須である。 入力値の検証は大きく分けて、 1. 長さや形式など、文脈によらず入力値だけを見て、それが妥当かどうかを判定できる検証 2. システムの状態によって入力値が妥当かどうか

      バリデーション解体新書 - kawasima
    • 2024年版 HTMLで作るフォームバリデーション - ICS MEDIA

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

        2024年版 HTMLで作るフォームバリデーション - ICS MEDIA
      • TypeScriptの型と値とバリデーション

        TypeScript は本質的に自分に型が付与されていると思っているだけの JavaScript です。 いくら型を付与しようが、それが実行時に影響を与えることはありません。 コードレビューをしているとここを誤解している人が本当に多いです。何度も解説しているのですが、なかなか浸透しないので、TypeScript におけるバリデーションという視点で記事を書くことにしました。 あと TS でバリデータ使って色々作ろうとしている友人と、プログラミング始めたてで zod と openapi を使っいる友人がいたので、彼らが想定読者です。 型と値の名前空間 TypeScript 上での名前空間(スコープ)は2つに分類できます。 値: 実行時にランタイム上のメモリに存在するもの 型: 静的解析時にのみ参照可能なもの。コンパイル時に完全に消滅する。 TypeScript は基本的に JavaScript

          TypeScriptの型と値とバリデーション
        • 翻訳: Parse, don’t validate (バリデーションせずパースせよ)

          これまで、型駆動設計を実践することが何を意味するのか、簡潔でシンプルな説明を見つけるのに苦労してきました。誰かに「どうやってこのアプローチを思いついたのですか?」と尋ねられることが多いのですが、満足のいく答えを出せないことがよくあります。そのアイデアが突然のひらめきで浮かんだわけではなく、正しいアプローチを空から引っ張り出す必要がない、反復的な設計プロセスがあると分かってはいるのですが、そのプロセスを他の人にうまく伝えることができていませんでした。 しかし、およそ1ヶ月前、JSON を静的型付け言語で、そして動的型付け言語にパースしたときに経験した違いについてTwitter上で振り返っていた時、ついに私が探していたものを見つけました。そして、そのスローガンはたった3つの英単語で表せます。 Parse, don’t validate (バリデーションせずパースせよ) 型駆動設計のエッセンス

            翻訳: Parse, don’t validate (バリデーションせずパースせよ)
          • 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 でバリデーションのその先へ
              • ReactとZodで作る堅牢なフォームバリデーション - ICS MEDIA

                前回の記事『2024年版 HTMLで作るフォームバリデーション』ではHTMLの機能を駆使したフォームバリデーションの実装について解説しました。HTMLのみでも高機能なフォームを作成できるのは解説したとおりですが、HTMLに加えてJavaScriptを組み合わせることでより高機能なフォームを作成できます。それに加えて、開発者体験の向上も期待できます。 本記事では3つのライブラリを使用して実践的なフォームを作成する方法を解説します。 UIライブラリ「React」 フォーム向けライブラリ「React Hook Form」 型システムと相性の良いスキーマバリデーションライブラリ「Zod」 また、静的型付け言語であるTypeScriptもこれらのライブラリと同時に使用し、堅牢なフォームの実装を目指します。 本記事を読むことで以下の知識が身につきます。 フォーム画面のユーザー体験(UX)と、フォーム実

                  ReactとZodで作る堅牢なフォームバリデーション - ICS MEDIA
                • フロントエンドとバックエンドの一貫したバリデーションで開発プロセスに調和と効率化をもたらす - 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
                  • DHHが考えるRailsのバリデーション設計

                    3行まとめ 単純なバリデーション(必須・範囲・文字数など)はHTMLとDB制約、CHECK制約があれば十分であるというのが最近のDHHの主張。 SQLiteではCHECK制約が少し貧弱なため、制約変更の可能性がある場合は従来通りアプリケーションでもバリデーションした方がいい。 Rails初心者はDHHの方法をそのまま採用するのはやめた方が良い。 調べたきっかけ 最近DHHがonce.comでのCampfireをはじめとしたプロダクトで、NULL制約やDB制約で防げるようなRailsのモデルのバリデーションを積極的には利用しないでいるという主張をしている。 DHHの主張を要約すると以下のようになる。[1] HTMLでのバリデーションが優れている 例えば、input type=“email” にしておくとブラウザで勝手にメールアドレス形式ではない場合にエラーにしてデータ送信をしないようにしてく

                      DHHが考えるRailsのバリデーション設計
                    • Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ

                      こんにちは、バックエンドエンジニアの日下です。 CSV から JSON へ変換するスクリプトを、TypeScript で実装する機会がありました。 今回は、CSV のデータのバリデーションに Zod を使った話をします。 スクリプトの目的 システム間のデータ連携が目的です。 連携元のシステムから CSV 出力されたデータを、連携先のシステムで利用する JSON へ変換します。 また、JSON への変換以外にも以下の要件があります。 CSV のデータをバリデーションする 連携先のシステムで利用できるデータであることを保証するために、バリデーションを実行します。 バリデーション失敗時に、日本語のエラーメッセージを表示する スクリプトの実行は業務担当のエンドユーザーが行うため、日本語のエラーメッセージを表示します。 CSV の読み込み 元データとなる CSV の読み込みは、csv-parse を

                        Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ
                      • 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の型定義からバリデーションコードを生成するツールを書いた
                        • 時系列データの交差検証(クロスバリデーション)は交差検証とはいえないし、良い方法でもないらしい

                          この記事は Qiita に投稿した以下の記事と同一の内容です。 https://qiita.com/s_katagiri/items/7f06ca85f851e0a50516 概要 時系列データ、あるいは独立かつ同一の分布 (i.i.d.) の仮定が成立しない、観測点どうしで自己相関のあるデータに対する予測モデルの交差検証(クロスバリデーション)について書きます。情報量規準との関連まで書きたかったけど時間がないので時系列データとクロスバリデーションについてだけ書きます。 本文ではまず、最初のセクション1では交差検証がなんであるかを確認したうえで、時系列データは交差検証法の想定しているものではなく、そのまま使うことが難しいことを直感的に説明します。次のセクション2では、これまで提案された様々な時系列データに対する予測誤差の評価方法を紹介します。セクション3では、これらの性能を実験で検証した研

                            時系列データの交差検証(クロスバリデーション)は交差検証とはいえないし、良い方法でもないらしい
                          • クライアントサイドのバリデーションエラーのデータ型についての考察 - 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

                              • Next.jsのsearchParamsはas stringせずに必ずバリデーションしてくれ。またはvalibotのちょいテクニック

                                Next.jsのsearchParamsの型問題 Next.jsのsearchParamsの型は少々厄介です。searchParamsのドキュメントでは次のように型定義が記載されています。 export default async function Page({ searchParams, }: { searchParams: Promise<{ [key: string]: string | string[] | undefined }>; }) { const filters = (await searchParams).filters; } 各パラメーターの型がstring | string[] | undefinedとなっていますね。これを使うときに型チェックが面倒になってsearchParams.filters as stringと書いてしまっているのをよく見ます。string[

                                  Next.jsのsearchParamsはas stringせずに必ずバリデーションしてくれ。またはvalibotのちょいテクニック
                                • Pydantic入門 – Pythonでシンプルかつ強力なバリデーションを始めよう - Qiita

                                  はじめに この記事では、PythonのデータバリデーションライブラリであるPydanticを使って、簡単にかつ強力にデータのバリデーションを行う方法を解説します。 今回はGoogle Colab上でハンズオン形式で進めていきますので、ブラウザさえあれば実行環境を整えるのも簡単です。 1. Pydanticとは? データのバリデーションや型の宣言を簡単に行えるPythonライブラリ Pythonの型ヒント(type hints)を活用して、データ構造の定義と検証を同時に実現 FastAPIなどの人気フレームワークでも広く採用されており、API開発・プロジェクト構成などで非常に便利 Pydanticを使うと、辞書やJSONで受け取ったデータが正しい形式になっているかどうかをPythonicに検証できるようになります。データの整合性を保つために煩雑なチェックを書かなくてよくなるので、とてもおすす

                                    Pydantic入門 – Pythonでシンプルかつ強力なバリデーションを始めよう - Qiita
                                  • Yup to Zod ~スキーマバリデーションライブラリの移行~ - Sansan Tech Blog

                                    Contract One Dev グループの井上です。本年もどうぞよろしくお願い申し上げます。 私たちのチームでは、先日、「Contract One Cheat Day」と銘打って社内ハッカソンを開催しました。 社内ハッカソンの内容については、社内ハッカソンを開催したら、止まっていた改善が色々進んだ話: Contract One Cheat Day - Sansan Tech Blogをご覧ください。 本記事では、そんな社内ハッカソンにおける取り組みの一つ、”Zod導入”について書いていきます。 Zodの導入について Yupでいいんじゃない? Zodとは、TypeScriptファーストのスキーマバリデーションライブラリです。類似のライブラリとしては、以前から広く使われているYupが挙げられます。Contract Oneでも、これまでYupを採用してきました。 Zodは比較的新しいライブラリ

                                      Yup to Zod ~スキーマバリデーションライブラリの移行~ - Sansan Tech Blog
                                    • Cloud Composerによるデータバリデーション ~常に正確なデータ集計を実現するために~ - ZOZO TECH BLOG

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

                                        Cloud Composerによるデータバリデーション ~常に正確なデータ集計を実現するために~ - ZOZO TECH BLOG
                                      • スキーマバリデーションライブラリの標準インターフェース standard-schema

                                        スキーマバリデーションライブラリの標準インターフェース standard-schema 2025.02.15 スキーマバリデーションライブラリはここ数年で人気を集めています。多くのライブラリが登場する中で、standard-schema はスキーマバリデーションライブラリの標準インターフェースを提供します。これにより、エコシステムツールがユーザー定義の型検証ツールをより簡単に受け入れられるようにすることを目指しています。 Zod や valibot, ArkType などを代表とするスキーマバリデーションライブラリはここ数年で人気を集めています。これらのライブラリは TypeScript の型システムを活用してスキーマを定義し、それに基づいてバリデーションを行います。バリデーションを行った結果は型安全に扱うことができるのが特徴です。 ユーザー入力のように外部からのデータを安全に扱いたいよう

                                          スキーマバリデーションライブラリの標準インターフェース standard-schema
                                        • 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
                                          • YAMLファイルはJSON Schemaでバリデーションしよう - Qiita

                                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                              YAMLファイルはJSON Schemaでバリデーションしよう - Qiita
                                            • Server Actions のフォームバリデーションにおいて useFormState でエラーメッセージを表示する

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

                                                Server Actions のフォームバリデーションにおいて useFormState でエラーメッセージを表示する
                                              • 10年物の長寿プロダクトのバリデーションアーキテクチャを変更した件 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                改善施策を決めるまで 旧アーキテクチャ概要 旧アーキテクチャの問題分析 新アーキテクチャ概要 最後に こんにちは、楽楽販売開発課の岡本です。 弊社では10年を超える長寿プロダクトをいくつも擁していますが、私が担当しているプロダクトもそんな長寿プロダクトの一つです。 さて、どのように優れたプロダクトでも10年以上開発を続けていれば、少なくない量のコード負債を抱えてしまうもので、我々の開発チームでもこの問題に日々悩まされております。 このような状況を打開すべく、昨年9月に開発チーム内に改善専門部隊が立ち上がりました。 本記事では、改善部隊が行った施策の1つである「バリデーションアーキテクチャの変更」を取り上げて紹介しようと思います。 改善施策を決めるまで 先の項でも紹介した通り、我々のプロダクトは少なくない量のコード負債を抱えてしまっています。 ですので、改善部隊が発足時点で改善したい内容はい

                                                  10年物の長寿プロダクトのバリデーションアーキテクチャを変更した件 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                • 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
                                                  • 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のバリデーションとモノイドと半群
                                                      • 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のバリデーションとオートマトン
                                                          • 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
                                                            • 史上初の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】スキーマ駆動開発におけるバリデーションの取り決め設計パターン集

                                                                    前回の記事では、GraphQLをプロダクトに投入するにあたり検討したエラーレスポンス設計パターンについて紹介しました。 この記事では、フロントエンドとバックエンド間でのバリデーションスキーマの取り決めについて解説します。 GraphQLスキーマ設計で悩まれている方の参考になれば幸いです。 ※ この記事に記載の内容は当時の情報です。最新の状況を反映していない可能性があるため、ご了承ください。 はじめに ハコベル配車計画では、バックエンドとフロントエンド間の通信においてGraphQLを活用しています。1年ほど運用していく中で、設計における課題がいくつか表面化してきました。 今回、社内ハッカソンイベントHackWeek 2023 [1] が開催され、ハコベル配車計画チームでは1年間の運用の中で感じた、GraphQLスキーマの設計における悩みを振り返ることにしました。 バリデーションにおける課題

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

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

                                                                          TypeScriptファーストなバリデーションライブラリ Zodの始め方 - Qiita
                                                                        • Angular Signals を用いて表示フォームとバリデーションの切り替えを効率化する - Nealle Developer's Blog

                                                                          はじめに こんにちは、ARCH チームの立川です。 今回は、Angular Signals を用いて表示フォームとそのバリデーションの切り替えを効率化する方法ついてご紹介します。ユーザーの選択によって入力フィールドが動的に表示・非表示になったり、それに伴ってバリデーションの付け外しが必要になったりするフォームは、コードが複雑になりがちです。この記事では、そうした切替フォームを Angular Signals や Effects を活用して、よりシンプルかつ宣言的に実装する方法を提案します。複雑なフォームのロジックを整理し、保守性の高いコードを書くためのヒントになれば幸いです。 今回のサンプル 今回は「個人」と「法人」のラジオボタンの選択で、入力フィールドが以下のように切り替わるフォームを考えたいと思います。 今回のサンプル 個人選択の場合 表示フォーム 種類 必須 お名前 テキストボックス

                                                                            Angular Signals を用いて表示フォームとバリデーションの切り替えを効率化する - Nealle Developer's Blog
                                                                          • Zodでファイル(画像)のバリデーションをする

                                                                            const IMAGE_TYPES = ['image/jpg', 'image/png']; const MAX_IMAGE_SIZE = 5; // 5MB // バイト単位のサイズをメガバイト単位に変換する const sizeInMB = (sizeInBytes: number, decimalsNum = 2) => { const result = sizeInBytes / (1024 * 1024); return +result.toFixed(decimalsNum); }; const schema = z.object({ file: z // z.inferでSchemaを定義したときに型がつくようにするため .custom<FileList>() // 必須にしたい場合 .refine((file) => file.length !== 0, { messag

                                                                              Zodでファイル(画像)のバリデーションをする
                                                                            • メールアドレスの正規表現バリデーションを見直そう - くらべテック

                                                                              ウェブアプリケーションやフォーム入力では、メールアドレスのバリデーションは欠かせない要素です。しかし、適切な正規表現を使用しないと、有効なメールアドレスを拒否したり、不正なメールアドレスを許可したりしてしまう可能性があります。本記事では、メールアドレスの正規表現バリデーションを見直し、既存の技術と比較しながら、より効果的な方法について具体的な使用例を交えて解説します。 なぜメールアドレスのバリデーションが重要なのか メールアドレスはユーザー認証や連絡手段として重要な役割を果たします。そのため、正しくバリデーションを行うことで、エラーを未然に防ぎ、セキュリティを強化することができます。 ユーザー体験の向上 適切なバリデーションは、ユーザーが入力ミスをすぐに発見できるようにし、スムーズな登録や問い合わせを可能にします。不適切なバリデーションは、ユーザーに不信感を与え、離脱の原因となり得ます。

                                                                                メールアドレスの正規表現バリデーションを見直そう - くらべテック
                                                                              • Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself

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

                                                                                  Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself
                                                                                • フォームのバリデーションに役立つYupとは? React向けライブラリを解説

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

                                                                                    フォームのバリデーションに役立つYupとは? React向けライブラリを解説

                                                                                  新着記事