プレゼンテーション ロジックを処理するのに最適な場所を決定しようとしています。ビューの DTO をクエリして生成する各メソッドで、読み取りクエリ (CQRS) を分離しました。しかし、私のビューは、DTO から取得される変数が散在する単純なテンプレートです。それらには論理がありません。
日付の表示方法を再フォーマットしたり、フラグを実際の説明的な言葉に変えたり、データベースから照会された内容に応じて表示される内容に小さな条件を追加したりしたいとします。私はこのロジックを各クエリに入れ、DRY すぎることを心配しないように考えています (場合によっては、DRY が多すぎると、各依存関係を確認する必要があるため、変更が難しくなる可能性があることがわかります)。または、単体テストが持ちこたえることを願っています)。あちこちで「ヘルパー」を使用して、私が続けている書式設定を行うことがありますが、他の「プレゼンテーションレイヤー」全体を追加する必要はないと思います。したがって、プレゼンテーション ロジックは各クエリに常駐し、返された DTO に入り、ビューに直接ドロップされます。これにより、CQRS の読み取り側が非常に薄くなります。各ビューが読み取りクエリに対応するという点で理にかなっています。しかし、私は、このプレゼンテーション ロジックの一部がドメインに非常に固有のものになることも懸念しています。新しく加わった開発者は、生のクエリから直接データを投げ出すのではなく、他のクエリを見て同じフォーマット手法を繰り返す必要があります。
これは健全なアプローチですか、それとも DDD/CQRS で使用されている別のアプローチはありますか? 私が行った CQRS 調査からのガイダンスを見つけるのに苦労しています。注: 私はたまたま PHP/MySQL を使用していますが、この質問は言語に依存しないと思います。