BackendAnnouncementEN → JA
0.37
zenn ·
ドメインサービスでrepositoryの実行は必要か?
要約
この記事は、ドメインサービスがリポジトリの実行メソッドを呼び出すべきかという、ドメイン駆動設計(DDD)における重要な議論について深掘りしています。DDDの原則に基づき、ドメインサービスは純粋なドメインロジックと振る舞いをカプセル化し、インフラストラクチャ層であるリポジトリへの直接的な依存を避けるべきだと論じています。そのため、リポジトリの実行やトランザクション管理といった永続化処理は、ユースケースを調整するアプリケーションサービスが担当するのが、責務の分離の観点からも望ましいと結論付けられています。具体的には、ドメインサービスは変更されたドメインオブジェクトを返し、それをアプリケーションサービスが受け取って永続化する流れが推奨されます。これにより、ドメイン層の純粋性が保たれ、保守性とテスト容易性が向上します。
📌
Key Points
- •ドメインサービスはドメインロジックに特化し、リポジトリによる永続化処理を行うべきではない。
- •リポジトリの実行やトランザクション管理といったインフラストラクチャに関する責務はアプリケーションサービスが担うべきである。
- •ドメインサービスは変更後のドメインオブジェクトをアプリケーションサービスに渡し、永続化の判断はアプリケーションサービスに委ねるのが望ましい。
Why it matters
この議論は、ドメイン駆動設計(DDD)における各層の責務を明確にし、保守性と拡張性の高いシステム設計を確立するために非常に重要です。
関連エンティティ
ドメインサービスリポジトリアプリケーションサービスドメイン駆動設計Clean ArchitectureHexagonal Architecture