ユビキタス言語
定義
ユビキタス言語(Ubiquitous Language)とは、ドメインエキスパート(業務担当者)と開発者が共同で作り上げ、会話・ドキュメント・コードのあらゆる場面で一貫して使い続ける共通言語。
「ユビキタス(ubiquitous)」は「どこにでも存在する」という意味で、この言語がチームのあらゆる成果物に浸透していることを表す。
なぜ重要か
ドメインエキスパートは「契約」「顧客」「請求」という言葉で話す。開発者は「Contractテーブル」「Userレコード」「Invoiceオブジェクト」という言葉で話す。この翻訳コストが、以下の問題を引き起こす:
- 要件の誤解が発生する
- モデルが業務の現実から乖離していく
- 変更要求のたびに「翻訳」が必要になる
ユビキタス言語を確立することで、ドメインモデルが業務の言葉で直接表現され、翻訳コストがゼロになる。
適用場面
- ドメインエキスパートとのミーティングで出てきた用語をそのままクラス名・メソッド名に使う
- コードレビューで「このクラス名は業務側が使う言葉と一致しているか?」を確認する
- ドキュメント(ADR・仕様書)でも同じ用語で統一する
- 用語に揺れが生じたら即座にチームで議論して合意する
注意点
ユビキタス言語は境界づけられたコンテキスト(Bounded Context)の中でのみ一貫性が保証される。異なるコンテキストでは同じ言葉が異なる意味を持ちうる(例:「顧客」は販売コンテキストでは購入者、サポートコンテキストではチケット発行者)。
関連概念
出典
実践ドメイン駆動設計(Vaughn Vernon)第1章