インターフェイス (コントラクト) とそれらの具体的な実装 (データ モデルとリポジトリの両方) を開発するとき、検証ロジックをどこに置くべきか疑問に思うことがあります。私の一部 (勝つ傾向がある) は、クラス自体が独自の検証 (文字列の最大長、日付バッファーなど) を担当する必要があると述べていますが、別の部分は、依存しているため、これをリポジトリに移動する必要があると述べています。永続ストアでは、これらの値はリポジトリの実装に基づいて変更される可能性があります。
クラスレベルで行わなければならない検証がいくつかあると思います。おそらくまとめて保持し、リポジトリが変更されても変更しないようにする必要があると思います。そのため、クラスに保持する傾向があります。
私はすべて UI 検証を入れようとしていますが、UI 検証の多くはバイパスできるため、これだけでは十分ではありません。
人々が何を考え、その背後にある理由に興味があります。