IT-Q

コントローラに直接バリデーションを書くと、何が困りますか。

コントローラが縦に伸びて本来の処理が埋もれます。同じ入力を扱う箇所が増えるとルールがコピペで散らばり、片方だけ直して食い違います。ルール単体のテストもしづらくなります。

面接官が見ているのは分離の理由の補強。

これは「バリデーションの置き場所として基本になるのはどれですか。」への追撃質問です。

よくある答えと、面談でどう見られるか

  • コントローラが長くなり、同じルールが複数箇所にコピペで散らばる
    その通りです。片方だけ直して食い違う、という事故が起きます。検証ルール単体でテストしたいときにも不便です。
  • バリデーションが動作しなくなる
    動作はします。問題は保守性です。
  • セキュリティ上の脆弱性になる
    直接の脆弱性ではありませんが、抜け漏れが起きやすくなるという意味では近い指摘です。
  • パフォーマンスが落ちる
    速度はほぼ変わりません。

面接官は何を見ているか

  • コントローラが長くなる点を挙げた
  • 同じルールの重複に触れた
  • テストのしづらさに触れた

模範解答

まずコントローラが縦に伸びて、本来の処理が埋もれます。同じ入力を扱う箇所が複数あると、ルールがコピペで散らばり、片方だけ直して食い違うということが起きます。検証ルール単体でテストしたくなった時にも、コントローラごと呼ばないと試せなくて不便です。