バリデーションの担当層
入力値のバリデーションはプレゼンテーション層の担当ですが、バリデーションルールをプレゼンテーション層で決定できないときもあります。値の範囲がDBに格納されているような場合です。
このときはバリデーションをロジック層で実行することになりますが、ふと思ったのは、「どうせプレゼンテーション層で100%カバーできないなら、最初から全部ロジック層の担当にした方がすっきりするのでは?」ということです。
プレゼンテーション層にバリデーションを任せたくない他の理由もあります。プレゼンテーション層には
- 比較的スキルの高くない人間が気軽(?)に変更する
- テストがしづらい
という特徴があるので、「何かの拍子でバリデーションタグが抜け落ちても気付かないのでは?」という不安を持つわけです。
この点、TeedaではViewのテストが大幅に強化されるそうなので、期待しています。