💒

【ドメイン駆動設計(DDD)】境界づけられたコンテキスト

に公開

はじめに

私はエンジニアとして、保守性の高いソースコード、きれいなアプリケーションアーキテクチャを目指しています。
その実現のために「ドメイン駆動設計をはじめよう」という本を読みドメイン駆動設計(以下、DDD)について学んでいます。せっかくなのでこれを読んで得た知識をアウトプットすることで、頭の中を整理するとともに、読者の皆さんの参考になりますと幸いです。
Amazonでのご購入はこちら

同じ言葉の矛盾

DDDでは同じ言葉を使って意思疎通を行いますが、言葉は同じでも責務やルールが違うことがあります。
例えば「在庫」です。受注管理の文脈では受注可能かどうかに責務を持ちます。しかし倉庫管理の文脈だと、倉庫の物理的な入出庫の正確性に責務を持ちます。

区切られた文脈

このように同じ言葉でも、異なる責務やルールを持つものがあるとき、使うモデルやデータの一貫性も別に保つ必要があります。その線引が区切られた文脈です。一般的には「境界づけられたコンテキスト」と表現してあります。

モデルはコピーではない

本の中で何回も出てくるのですが、モデルは現実世界のコピーではありません。モデルは複雑な世界を理解するための簡略化です。何かの目的のためにモデルを作ります。モデルはある範囲を超えると役に立たなくなります。その範囲を定義する境界が区切られた文脈です。

Discussion