🗣️
概念 #DDD #設計原則 #チームコミュニケーション 📚 現場で役立つシステム設計の原則

ユビキタス言語

開発者とドメインエキスパートが共有する、コード・会話・ドキュメントすべてに貫徹させる共通言語

定義

ユビキタス言語(Ubiquitous Language)とは、ドメインエキスパート(業務担当者)と開発者が共同で作り上げ、会話・ドキュメント・コードのあらゆる場面で一貫して使い続ける共通言語。

「ユビキタス(ubiquitous)」は「どこにでも存在する」という意味で、この言語がチームのあらゆる成果物に浸透していることを表す。

なぜ重要か

ドメインエキスパートは「契約」「顧客」「請求」という言葉で話す。開発者は「Contractテーブル」「Userレコード」「Invoiceオブジェクト」という言葉で話す。この翻訳コストが、以下の問題を引き起こす:

  • 要件の誤解が発生する
  • モデルが業務の現実から乖離していく
  • 変更要求のたびに「翻訳」が必要になる

ユビキタス言語を確立することで、ドメインモデルが業務の言葉で直接表現され、翻訳コストがゼロになる。

適用場面

  • ドメインエキスパートとのミーティングで出てきた用語をそのままクラス名・メソッド名に使う
  • コードレビューで「このクラス名は業務側が使う言葉と一致しているか?」を確認する
  • ドキュメント(ADR・仕様書)でも同じ用語で統一する
  • 用語に揺れが生じたら即座にチームで議論して合意する

注意点

ユビキタス言語は境界づけられたコンテキスト(Bounded Context)の中でのみ一貫性が保証される。異なるコンテキストでは同じ言葉が異なる意味を持ちうる(例:「顧客」は販売コンテキストでは購入者、サポートコンテキストではチケット発行者)。

出典

実践ドメイン駆動設計(Vaughn Vernon)第1章