ビジネスロジックのバリデートについて
Laravelでエンティティとバリューオブジェクトとサービスとリポジトリを利用したパターンでWEBアプリケーションを作成しています。
果物はりんご、みかん、ぶどう、しか存在しないというビジネスロジックがあり、
果物がそのいずれかであることを担保する場合。
果物のバリューオブジェクトを作成し、
そのコンストラクタでバリデートをおこなうべきだと思ったのですが、
同僚にフォームリクエストで行うべきだと指摘されました。
フォームリクエストは入力値のチェックだけで、
あくまで、果物が「りんご、みかん、ぶどう」であるというビジネスロジックのバリデートは
バリューオブジェクトで行うべきだと思うのですが、
この考えは間違えているのでしょうか?
【追記】
このバリデートの前提として、果物の値のリクエストがあり、それに対してのバリデートとなるのですが、
同僚の指摘の意図は、それはリクエスト内容なので、フォームリクエストで行うべきといっていました。
私は、それに対してフォームリクエストでビジネスロジックのバリデートを行う場合、
果物のバリューオブジェクトを他の箇所でも再利用する場合、必ずフォームリクエストでバリデートすることを
覚えておかなければいけない為、ミスが起こりやすい設計ではないかと指摘しました。
また、フォームリクエストがビジネスロジックを持つことは、フォームリクエストの責務を越えていると思うと伝えました。
それに対して、同僚はリクエストなので、ビジネスロジックであっても、フォームリクエストがバリデートすることは、
フォームリクエストの責務を越えていないという考えでした。
私はバリューオブジェクトの値の正当性はバリューオブジェクト自身が担保するべきという考えで、
同僚はバリューオブジェクトの値の正当性は、その前の段階で値の正当性を担保し、
それをバリューオブジェクトに渡すべきという考えでした。
回答1件
あなたの回答
tips
プレビュー