【ゆびきたすげんご】

ユビキタス言語 とは?

💡 エンジニアと業務の専門家が同じ言葉で話せる魔法の辞書
📌 このページのポイント
ユビキタス言語の役割 ビジネス側 「お客さんが注文して 配送先を指定して 支払いを済ませる」 👤 開発チーム Order クラス ShippingAddress Payment メソッド 💻 ユビキタス言語 注文 = Order 配送先 = ShippingAddress 支払い = Payment NG: 言葉がバラバラ 営業「顧客」 開発「ユーザー」 CS「利用者」 → 認識ズレでバグ発生 OK: 全員が同じ言葉 全員「注文者(Orderer)」で統一 → 仕様もコードも一致
ユビキタス言語のイメージ
ひよこ ひよこ

ユビキタス言語って、プログラミング言語のこと?

ペンギン先生 ペンギン先生

プログラミング言語とは違うよ。開発者と業務の専門家が会話するときに使う「共通の用語集」のことなんだ。たとえば保険システムなら「契約者」「被保険者」「保険金受取人」の定義をチーム全員で揃えるイメージだね

ひよこ ひよこ

言葉を揃えるだけでそんなに大事なの?

ペンギン先生 ペンギン先生

めちゃくちゃ大事だよ。たとえば営業が言う「顧客」と開発者が言う「ユーザー」が同じ意味なのか違う意味なのか曖昧だと、データベース設計もAPIも全部ズレてしまうんだ。言葉のズレはそのままバグになるよ

ひよこ ひよこ

コードにも関係あるの?

ペンギン先生 ペンギン先生

むしろコードにこそ反映させるのがポイントなんだ。ユビキタス言語で「注文」と決めたら、コード上のクラス名もOrderにする。「購買」とか「買い物」とか別の言葉を使わないようにするんだよ

ひよこ ひよこ

途中で言葉の定義が変わったらどうするの?

ペンギン先生 ペンギン先生

ドメインの理解が深まると言葉が変わることはよくあるよ。そのときはコードもリファクタリングして新しい言葉に合わせるんだ。面倒に思えるけど、言葉とコードがズレたまま開発を続けるほうがずっと危険だからね

ひよこ ひよこ

DDDを使わなくてもユビキタス言語は役立つ?

ペンギン先生 ペンギン先生

もちろんだよ。DDDを本格導入しなくても、チームで用語集を作って共有するだけで効果があるんだ。大規模プロジェクトほど言葉のズレが致命的になるから、最初に用語を揃える習慣をつけるといいね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ユビキタス言語」って出てきたら「開発者と業務の人が共通で使う言葉の取り決め」と思えればだいたいOK!
📖 おまけ:英語の意味
「Ubiquitous Language」 = 普遍的な言語
💬 ubiquitousは「どこにでもある」という意味。チームのどこにいても同じ言葉が通じるようにしようという考え方だよ
← 用語集にもどる