ドメイン駆動設計とは?
どめいんくどうせっけい
ドメイン駆動設計とは、ビジネスの問題領域(ドメイン)を中心にソフトウェアを設計・開発するアプローチで、複雑なシステムを扱いやすくする手法です。
ドメイン駆動設計(Domain-Driven Design、略称DDD)とは、ソフトウェア開発において、解決すべきビジネスの問題領域(ドメイン)をシステム設計の中核に据え、ドメインの専門家(業務担当者)と開発者が共通の「ユビキタス言語」を持ちながら協働するアプローチです。エリック・エヴァンスが2003年の著書で提唱しました。
DDDの中心的な考え方は、ビジネスのルールや概念をコードに忠実に反映させることです。ドメインの知識を「エンティティ」「値オブジェクト」「集約」「ドメインサービス」「リポジトリ」などのパターンを使って構造化し、技術的な実装の詳細からビジネスロジックを分離します。
DDDの主要な概念:
- ユビキタス言語— 業務担当者と開発者が共通して使う語彙・概念の統一
- 境界付けられたコンテキスト— ドメインを適切なスコープに区切り、各コンテキスト内で言語・モデルを一貫させる
- エンティティ・値オブジェクト— ドメインオブジェクトの設計パターン
- 集約(アグリゲート)— 関連オブジェクトをひとまとまりとして扱う単位
DDDはマイクロサービスアーキテクチャとの親和性も高く、「境界付けられたコンテキスト」がサービス分割の指針として活用されることも多いです。ビジネスロジックが複雑なシステムで特に有効で、現代のエンタープライズ開発で広く参照される設計思想です。
使い方・例文
「DDDを採用したプロジェクトでは、営業部門が使う『受注』という言葉とシステム内の『Order』クラスが同じ概念を指すよう、ユビキタス言語を整備します」のように、ソフトウェア設計・アーキテクチャの議論で使われます。
この用語をシェア
最終更新: