コンテキストマップで整理されたコンテキストについて、なぜそのような切り分け方をしたのか、切り分ける意味が何かといったことを開発者以外にも伝えたい、という課題があった。
そこで本稿では、「境界づけられたコンテキスト」について、開発者以外にも伝わるような説明を試みる。
同じ言葉であっても、コンテキストが異なれば言葉の意味が変わることがある。
例えば「注文」という言葉を例に挙げる。
営業部門では「お客様からの依頼」を指し、倉庫では「出荷の指示」、会計部門では「請求対象のデータ」を意味するかもしれない。
他にも以下のような例がある。
このように、同じ言葉でも使われる業務や立場によって意味が変わる。
この違いを明確にするのが、「コンテキスト」という考え方である。
コンテキストとは、言葉やルールの意味が一貫して通用する業務のまとまりのことである。
ドメイン駆動設計(DDD)においては、これを「バウンデッドコンテキスト(Bounded Context)」と呼ぶ。
例えば「注文」という言葉も、コンテキストによって意味が以下のように異なる。
このように、それぞれの業務で言葉の意味やルールが変わるところを「区切って」扱うのが、コンテキストの特徴である。
このコンテキストを意識せずに業務を進めたり、システムを設計したりすると、さまざまな問題が発生する。
逆に、コンテキストを分けて整理しておけば、以下のようなメリットが得られる。
つまり、コンテキストが適切に整理されることで、システムや組織は次のような恩恵を得ることができる。
正しくコンテキストが整理されていることは、システムと組織の両面における安定性の向上につながる。
ECサイトの注文に関する業務を、3つの部門に分けてみる。
部門 | 「注文」の意味 |
---|---|
フロントサイト | 顧客がカートで確定した内容 |
倉庫業務 | 出荷対象の指示データ |
会計 | 請求処理すべき売上データ |
これらはいずれも「注文」という言葉を使っているが、扱っている内容・目的・処理がまったく異なる。
この違いを無視してひとつの言葉でまとめてしまうと、
だからこそ、「コンテキスト」を分けて考えることが重要である。
コンテキストは、開発者だけが理解していれば良いものではない。
例えば以下のような疑問に思い当たることはないだろうか?
こうした問いは、すべてコンテキストの整理と密接に関係している。
業務の目的や言葉の意味が変わるところに境界を引き、その境界ごとに役割や責任を明確にする。
この視点は、開発者に限らず、営業、サポート、企画など、あらゆる職種にとって有益である。
関連書籍