DDD(でぃーでぃーでぃー)
最終更新:2026/4/25
DDD(ドメイン駆動設計)は、ソフトウェア開発において複雑なビジネスロジックをモデル化するためのアプローチである。
別名・同義語 ドメイン駆動設計
ポイント
DDDは、ビジネスドメインの専門家と開発者の間の共通言語を確立し、ソフトウェアをドメインの概念に沿って構築することを目指す。
DDDとは
DDD(Domain-Driven Design)は、エリック・エヴァンスによって提唱されたソフトウェア開発のアプローチです。複雑なビジネスロジックを持つソフトウェアを開発する際に、その中心となるのは「ドメイン」、つまりビジネスの専門家が扱う概念やルールです。DDDは、このドメインを深く理解し、それをソフトウェアの設計に反映させることを重視します。
DDDの主要な概念
- ドメイン: ソフトウェアが解決しようとしている問題の範囲、ビジネスの専門家が扱う概念やルール。
- ユビキタス言語: ドメインの専門家と開発者が共通して使用する言語。曖昧さを排除し、誤解を防ぐために重要。
- エンティティ: 固有のIDを持ち、時間経過とともに状態が変化するオブジェクト。
- 値オブジェクト: 状態を持たず、属性によって識別されるオブジェクト。
- ドメインサービス: エンティティや値オブジェクトだけでは表現できないビジネスロジックを実装するサービス。
- リポジトリ: 永続化層へのアクセスを抽象化するインターフェース。
- アグリゲート: 一貫性を保つべきエンティティと値オブジェクトの集まり。
DDDのメリット
- ビジネスロジックの明確化: ドメインを深く理解することで、ソフトウェアの設計がビジネスのニーズに合致しやすくなります。
- 保守性の向上: ドメインモデルに基づいて設計されたソフトウェアは、変更に強く、保守が容易になります。
- コミュニケーションの円滑化: ユビキタス言語を使用することで、ドメインの専門家と開発者の間のコミュニケーションが円滑になります。