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