プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • システム開発
  • 【システム開発】バリデーションのポイント
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【システム開発】バリデーションのポイント

12.06

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

単項目チェック

共通

長さチェック

姓

旧字体チェックを含めた使用可能文字チェック

名

旧字体チェックを含めた使用可能文字チェック

住所

旧字体チェックを含めた使用可能文字チェック

電話番号

許可文字はプラス(国際電話)、ハイフン、数字の3種類

メール

RFC体系に沿うようにする。

日付

存在する日付かチェック

複数項目チェック

  • 元号と日付のチェック
  • 開始日、終了日のチェック

業務チェック

  • 会員ID存在チェック
  • 排他制御

その他のチェック

非機能要件のチェックに使う。個々の画面では行わず共通処理として実装する。他のチェックに比べて高い技術力が必要になる。

ログイン認証

セッションタイムアウトチェック

エラーになった場合はログイン画面に戻してあげると親切

サービス時間外チェック

エラーメッセージのポイント

ユーザーが気付きやすいようにエラーメッセージは多少強調してあげることが重要

どこでチェックするか

基本、チェックに担保が取れるサーバーサイドでチェックを実施をして、工数的に余裕があればフロントエンドでもチェックを実施するというのがスタンダードです。特にインターネットに公開するようなWebアプリであればフロントエンドでのチェックも実施した方が良いでしょう。

フロントエンド

  • JavaScriptで行う。
  • サーバーへの通信が発生しない。
  • 画面で持っている情報しか利用できない。
  • ユーザーがソースを改ざんして突破されてしまう可能性もあるので注意

サーバーサイド

  • サーバーへの通信が発生する。
  • 入力値をDBや外部システムを参照可能
  • ほぼ改ざんされる可能性がないので担保が取れる。

チェックの順番

「単項目チェック→複数項目チェック・業務チェック」の順にやるのが一般的。

例外的なパターン

複数画面で登録を行うパターン

他の人と競合しないように必ずDB登録前にもチェックを行うことが必要。なお、複数画面に登録においてエラー内容によって画面の遷移先を戻すというのは多岐に渡る場合があり非常に工数がかかるケースも多いので気軽にできる内容ではないです。顧客調整をして行うようにしましょう。

日付跨ぎ・年跨ぎ

年が変わってマスタデータが変わる場合に、前年、前日のデータとして登録してしまわないか。

法改正・キャンペーン終了・有効期限切れ

前年度の契約条項を確認してしまった上で登録処理をさせていないか。

実装方法

ValueObject

DDDなどでは一般的です。適正な値はドメインでちゃんと処理しましょうねという考え方です。

モデル

RailsやLaravelなどのフレームワークなどを使った場合は一般的です。

Controller

バリデーション専用のモデルを作って呼びましょうという考え方です。確かにまとまっていてわかりやすいかも。

スポンサーリンク
  • 2020 12.06
  • miyabisan2
  • コメントを書く
  • システム開発
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2018 06.23

    【システム開発】「環境」の種類(ローカル、開発、ステージング、プロダクション)

  2. 2019 12.14

    【VSCode】Gitとの連携に関する知識

  3. 2018 04.29

    【システム開発】開発モデル、開発手法の種類

  4. 2019 06.09

    【XML】タグの取り決め(「DTD」や「XML Schma:xsd」)、名前空間について

  5. 2019 12.14

    【VSCode】概要(画面構成、コマンドパレット、クイックオープンなど)、開発する上で入れたいパッケージ

  6. 2019 06.08

    【XML】文書構成

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Ruby on Rails】「ActiveModel…

【データベース】「排他制御」について

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー