ユビキタス言語の創造
設計に存在するものは、ドメインエキスパートの メンタルモデル にあるものと同じでなければならない e.g. ドメインエキスパートが何かを「注文」と呼んでいる
コードの中に Order と呼ばれるものを用意し、同じように振る舞いべきである
ただし、この「注文」は発送部門における定義と請求部門における定義は異なる
ここが日本語だと更に 1 つ変換が挟まるのがネック radish-miyazaki.icon
逆に、ドメインエキスパートのモデルの中で何かを表現していないものを、設計の中に含めるべきではない。
e.g. OrderFactory、OrderManager、OrderHelper
もちろん コードベース 内に専門用語が出てくることはあるが、設計の一部として公開するのは避けるべき チーム全員が共有する概念と語彙のセット
ユビキタス という名前が示すように、あらゆる場所で利用するべき 要件、設計、コード
静的ではなく、絶えず更新されるもの
すべてのドメインやコンテキストをカバーするユビキタス言語は構築できないことを知っておく
それぞれのコンテキストにはユビキタス言語の「方言」があり、同じ言葉でも意味がことなる
e.g. クラス: CSS と OOP では異なる
無理に同じ意味にすると、要求は複雑になり、重大な設計ミスにつながる可能性も