【きょうかいづけられたこんてきすと】

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

最終更新:
💡 「同じ言葉でも意味が違う」境界を引く

DDDで、あるモデルと用語の意味を一貫して使える範囲を明確にする概念。範囲ごとのモデルを区別し、範囲をまたぐ関係や変換も設計する。

📌 このページのポイント
モデルと言葉が通用する範囲を定める 販売 商品 商品名 価格 モデルの範囲 配送 商品 重さ サイズ モデルの範囲 サポート 商品 対象製品 問い合わせ モデルの範囲 同じ商品でも必要な情報が違う 各範囲で言葉とモデルを一貫させる 境界をまたぐ意味の対応も設計する サービスやサーバーの数とは別の概念
ECサイトの三つの範囲を並べた説明例。点線はモデルの境界で、色は業務の違いを示す。商品データの例を比較する図であり、通信の順序や部署・サービスの固定分割ではない。
ひよこ ひよこ
具体例で説明して?
ペンギン先生 ペンギン先生
ECサイトの「商品」を考えよう。販売では商品名や価格、配送では重さやサイズ、サポートでは問い合わせ対象としての情報が必要だね。これは説明用の分け方だけど、全部を一つの意味やクラスに押し込めず、各範囲に合うモデルを一貫して使うのが大切なんだ。
ひよこ ひよこ
コンテキスト間のデータはどうやり取りする?
ペンギン先生 ペンギン先生
たとえば販売の商品IDを配送へ渡すとき、配送側で何を意味するかを決めるよ。APIやメッセージで連携する場合も、項目の対応や変更時の扱いを明確にするんだ。同じ名前の項目だからと、同じ意味・同じモデルだと思い込まないようにしよう。
ひよこ ひよこ
どうやって境界を見つけるの?
ペンギン先生 ペンギン先生
業務の担当者と話して、同じ言葉がどこで別の意味になるか、どのルールを一緒に扱う必要があるかを探るよ。チームの責任範囲やコードの使われ方も手がかりになる。部署の区切りをそのまま写すだけで、よい境界が決まるわけではないんだ。
ひよこ ひよこ
1つのコンテキストが1つのサービスになるの?
ペンギン先生 ペンギン先生
必ずではないよ。これはモデルが通用する範囲の話で、プロセスやサーバーの数を決めるものではないんだ。一つのアプリに複数のコンテキストを置くこともある。サービスを分けるなら、独立した変更や運用の必要性、通信の負担も考えよう。
ひよこ ひよこ
境界を間違えたらどうなる?
ペンギン先生 ペンギン先生
異なる意味を混ぜると、会話や実装に食い違いが生まれるよ。逆に細かく分けすぎると、対応づけや連携が複雑になる場合もあるね。業務への理解が深まったら、モデルの境界とその関係を見直すんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「境界づけられたコンテキスト」って出てきたら「モデルと言葉の意味をそろえる範囲」と思えばだいたいOK!
📖 おまけ:英語の意味
「Bounded Context」 = 境界づけられたコンテキスト
💬 Bounded(境界を持つ)Context(文脈)。Eric EvansのDDD本の中核概念だよ

参考資料

← 用語集にもどる