9/30
クエリサービスを使う上で突き当たる、非常に重要な課題ですね。 個人的な意見としては、クエリサービスの実装クラスからドメイン知識(ビジネスロジック)を「完全に」なくすのは難しいと考えています。なので、完全になくすことを目指すことではなく、 ①変更容易性を高めるにはどれくらいの知識をもたせるかを検討する ②あとは更新系処理との結合テストをしっかり実施する というアプローチが現実的かと思っています。 今回の検索できる対象のユーザーの件であれば、 クエリサービスの実装クラスで付与する検索条件のうち、 実装クラスないで暗黙的に付与する条件と、引数での指定を表現する物をうまく切り分けて、 あとは更新系処理と合わせた結合テストで動作をカバーする、という地道な形になるのかな・・と思います。 あまり根本解決にならなくて申し訳ありませんが、どうしても複雑なクエリをしようとすると避けられないかなとは思います。
※利用規約、プライバシーポリシーに同意の上ご利用ください
