Skip to main content

ドメイン駆動設計に関する用語リスト

· 4 min read
Hiroki Ihoriya

ドメイン駆動設計(DDD)には,さまざまな用語が登場し,それぞれが重要な意味が持た されています.

この記事では,DDD を学ぶ際に登場する用語を整理します.用語の意味が間違えている, 不適切であるといった点がございましたら,@unvalley_までお知らせください.

ドメイン駆動設計#

Wikipedia

ドメイン駆動設計(英: domain-driven design, DDD)とはソフトウェアの設計手法で あり、「複雑なドメインの設計は、モデルベースで行うべき」であり、また「大半のソ フトウェアプロジェクトでは、システムを実装するための特定の技術ではなく、ドメイ ンそのものとドメインのロジックに焦点を置くべき」であるとする。この名称は、 Eric Evans が同名の著作で用いた。

ユビキタス言語#

ユビキタス言語とは,ドメインを語るためにプロジェクトに関わる全員が利用する共通言 語のこと.

  • ユビキタス言語によって,ドメインモデルと言語が強く結びつくようになる
  • モデリングの作業全体を通して,開発者とドメインエキスパートとのコミュニケーショ ンを楽にする
  • 設計に関するその他のあらゆる判断と同様,技術的な判断についても,ユビキタス言語を優先させるようにしよう.DDDにおいては,ビジネスドメインのモデルが最優先となる.実践ドメイン駆動設計 p.306

ドメインモデル#

現実世界を抽象化したモデルをコードで表現する

戦略的設計#

コアドメイン#

コアドメインとは,システム内で最も価値の大きい中心的なモデルのこと.

サブドメイン#

サブドメインとは,.

境界づけられたコンテキスト(Boundary Context)#

境界づけられたコンテキストとは,

戦術的設計#

値オブジェクト(ValueObject)#

値オブジェクトとは,(一意である必要のない)ドメインの属性を表現するオブジェクト のこと.

エンティティ(Entity)#

エンティティとは,一意性を保証するオブジェクトのこと.

  • ドメインモデルに必須のオブジェクト

サービス#

モジュール#

ファクトリ(Factory)#

リポジトリ(Repository)#

集約#

集約とは,トランザクション整合性を保ちながら更新を行うオブジェクトのまとまりの こと.「実践ドメイン駆動設計」から学ぶ DDD の実装入門

  • 集約は,エンティティや値オブジェクトを内包する境界を定義する

  • 集約は,内部のオブジェクトが変更される場合,トランザクション整合性を正しく保つ

  • 境界内部のエンティティは集約内で一意となる?

    • どういう意味だ

ドメインイベント#

参考文献#