バリデーションの担当層

入力値のバリデーションはプレゼンテーション層の担当ですが、バリデーションルールをプレゼンテーション層で決定できないときもあります。値の範囲がDBに格納されているような場合です。

このときはバリデーションをロジック層で実行することになりますが、ふと思ったのは、「どうせプレゼンテーション層で100%カバーできないなら、最初から全部ロジック層の担当にした方がすっきりするのでは?」ということです。

プレゼンテーション層にバリデーションを任せたくない他の理由もあります。プレゼンテーション層には

  • 比較的スキルの高くない人間が気軽(?)に変更する
  • テストがしづらい

という特徴があるので、「何かの拍子でバリデーションタグが抜け落ちても気付かないのでは?」という不安を持つわけです。
この点、TeedaではViewのテストが大幅に強化されるそうなので、期待しています。