3
1

バリデーションチェックがなぜ必要か?

Posted at

バリデーションとは

日本語で「確認」や「検証」を意味し、データの妥当性を表します。

①入力チェック
必須の入力項目に抜け漏れがないかチェックする。テキスト以外にも、利用規約確認後のチェックボックスの選択漏れも含まれます。

②データの形式チェック
文字の種類・値の範囲・桁数などと幅広く、
・メールアドレスに@(アットマーク)が含まれていない
・パスワードの要件(例:アルファベットや記号など、複数の文字種を入力する)を満たしていない
という様に、不正データを除外する。

③データの妥当性
複数の入力データとの関連チェックを行う。例えば問診票に飲酒の項目があり、「飲む」を選択した場合は頻度と量を入力する様にする

スクリーンショット 2023-11-16 20.26.41.jpg

上の登録フォームではサービスを利用するために、
・どの項目の入力が必要かを米印で表す
・どう設定したら良いかの説明文を載せる
・ユーザーに合ったサービスを提供するため、生年月日や身長も入力して貰う

バリデーションがなぜ必要か?

①妥当性のないデータだと、内部処理が正常に動作しない
「妥当性のない = 確認する必要がない」となると不正データも許容してしまい、内部処理に異常動作が起きやすくなります。「どんなデータで処理するか?」が重要なポイントですね。

②データ形式の統一が必要である
例えば電話番号の場合、開始番号に2桁・3桁・4桁があるのはご存知でしたか?

2桁:国内の都道府県などを区別ために使う市外局番
3桁:携帯電話やPHSなどの番号
4桁:フリーダイヤルやナビダイヤルの番号

そして入力する時は、「-(ハイフン)」も入れるのが一般的。それを除外してしまったらどうなるのでしょうか?

例えば「0422559431」の場合、実は複数の開始番号が存在しているんです。

東京都立川市などが指定する「042」→「042-255-9431」
東京都武蔵野市が指定する「0422」→「0422-55-9431」

「-(ハイフン)」なしだと上記のどちらに該当するか分からず、どの地域から発信しているか特定できない。開始番号の桁数から、どの番号なのかを特定するために「-(ハイフン)」も入れるんじゃないかと、私はそう思っています。

バリデーションが必要な理由をこう勘違いしている方が多い!!

ユーザーの入力ミスを防ぐため
入力データの確認より、入力ルールをユーザーに押しつけている様に思えます。必須項目や入力の説明文が多すぎると、ユーザーが登録せずに離脱してしまうので、

「サービスの利用向上としてこのデータが欲しいです」

の気持ちでバリデーションを実装すれば良いかと思います。

調べてみて分かったこと

バリデーションは、入力ルールをユーザーに押しつけるのではなく、不正データを入力してシステムの異常動作を防ぐためにあるんですね。小数点や記号などデータの種類が豊富だけど、「サービスを利用するにはどんなデータが必要か?」を意識して、バリデーションを実装しようと思いました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1