20名のPL経験を持つエンジニアの視点で見ると、PHP等のスクリプト言語から移行した方は、コントローラー内に大量の「if文」を書いて入力チェックを行おうとする傾向があります。しかし、Spring Bootでは「宣言的バリデーション」を用いるのが正解です。以下の違いを比較してみましょう。
// 初心者がやりがちな「if文地獄」なコード(メンテナンス性が低い)if (name == null || name.isEmpty()) { ... } // 項目が増えるたびにコードが肥大化if (age < 18) { ... } // バリデーションの修正漏れがバグの温床に!// プロの書き方(アノテーションで解決:保守性が向上)@NotBlank(message = "名前は必須です")@Size(max = 20, message = "20文字以内で入力してください")private String name; // 後の「Lombok活用(応用第4回)」と組み合わせればさらにスッキリ!
このように、「何をチェックするか」を定義(アノテーション)し、「エラー時にどう振る舞うか」を制御(BindingResult)する役割分担こそが、Spring開発の王道です。この設計をマスターすることが、画像にある「応用編:Service層の分離」を実現するための必須条件となります。
※セミナー内では、現場で多用するバリデーション・アノテーションの「逆引きリファレンス」を配布。さらに、エラー時の画面遷移をスムーズに行うためのテンプレートコードも提供します。