コントローラに直接バリデーションを書くと、何が困りますか。
コントローラが縦に伸びて本来の処理が埋もれます。同じ入力を扱う箇所が増えるとルールがコピペで散らばり、片方だけ直して食い違います。ルール単体のテストもしづらくなります。
面接官が見ているのは分離の理由の補強。
これは「バリデーションの置き場所として基本になるのはどれですか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- コントローラが長くなり、同じルールが複数箇所にコピペで散らばる
その通りです。片方だけ直して食い違う、という事故が起きます。検証ルール単体でテストしたいときにも不便です。 - バリデーションが動作しなくなる
動作はします。問題は保守性です。 - セキュリティ上の脆弱性になる
直接の脆弱性ではありませんが、抜け漏れが起きやすくなるという意味では近い指摘です。 - パフォーマンスが落ちる
速度はほぼ変わりません。
面接官は何を見ているか
- コントローラが長くなる点を挙げた
- 同じルールの重複に触れた
- テストのしづらさに触れた
模範解答
まずコントローラが縦に伸びて、本来の処理が埋もれます。同じ入力を扱う箇所が複数あると、ルールがコピペで散らばり、片方だけ直して食い違うということが起きます。検証ルール単体でテストしたくなった時にも、コントローラごと呼ばないと試せなくて不便です。