ドメイン駆動設計(DDD)とは?どめいんくどうせっけい
ドメイン駆動設計(DDD)とは、業務そのものの理解をコードの中心に置く設計手法。業務専門家と開発者が同じ言葉(ユビキタス言語)を使い、その言葉で表したモデルを会話しながら育て、実装をモデルへ追従させる。モデルを組み立てる道具として、エンティティ・値オブジェクト・集約・リポジトリ・境界付けられたコンテキストといった型が用意されている。
最終更新:2026-10-06
システムアーキテクトを最短で暗記・合格する →背景
業務ルールが画面やSQLの中へ散っていると、仕様の質問に答えられる人がどこにもいなくなり、変更のたびに全体を読み直すことになる。原因は、実装の都合で作った構造と、業務を理解している構造が別物であること。両者を一致させておけば、業務が変わった箇所と直すべきコードが対応する。話す言葉まで揃えるのは、翻訳のたびに意味がずれるのを防ぐためにほかならない。
具体例
エリック・エヴァンスが2003年の著書で体系化した。「販売」と「会計」では同じ『顧客』でも必要な属性も守るべき条件も違うことを認め、コンテキストを分けてそれぞれのモデルを持たせる。用語集を作り、業務側と開発側が同じ語を使うところから始めるのが定石になる。
試験での引っ掛け
テーブル設計から出発する手法と取り違えやすい。本質は業務の言葉とモデルを一致させることで、永続化の都合はリポジトリの内側へ押し込む。またエンティティや値オブジェクトといった型だけを導入しても、業務専門家との言葉が揃っていなければ効果は出ない。中心にあるのは設計パターンではなく対話のほう。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。