ユビキタス言語

ユビキタス言語とは

ユビキタス言語は、業務に詳しい人と開発者が、会話・資料・画面・コードで一貫して使う、ドメインモデルに基づいた言葉です。

最初に用語集を完成させて固定するものではありません。具体例を話し、実装し、言葉の違和感に気づくたびに、ドメインモデルと一緒に更新します。

ユビキタス言語の特徴

ドメインモデルに基づく
業務で重要な概念、関係、ルールを表す言葉を使います。
会話とコードの両方で使う
用語集に記録するだけでなく、会議、仕様、画面、テスト、クラスやメソッドの名前で使います。
理解とともに変わる
新しい例外や認識の違いが見つかったら、言葉とドメインモデルを見直します。

具体例で整理する

フットサルNOWの参加者募集を例にします。主催者が募集を公開し、参加希望者が申込期限までに参加を申請すると、その場で参加が確定します。

この会話から「募集」「参加申請」「申込期限」「参加確定」という言葉が見つかります。名詞だけでなく、「申請する」「確定する」のような操作や状態も、ドメインモデルを理解するための言葉です。

意味を揃えるために確認すること
  • 「参加申請」と「参加確定」は同じか
  • キャンセル待ちの人も「参加者」と呼ぶか
  • 申込期限ちょうどの時刻には申し込めるか

定義だけでなく具体例と判断が分かれる場面を出すと、同じ言葉から別の状態を想像していないか確認できます。答えが決まらない場合は、無理に定義せず、確認が必要な問いとして残します。

用語集で記録する

話し合って分かった内容は、後から確かめられるように業務用語集へ記録します。用語集はユビキタス言語そのものではなく、チームが現在どのように理解しているかを共有するための道具です。

言葉
募集
現在の意味
主催者が開催日時、場所、定員、申込期限を決め、参加者を募るもの。
具体例・ルール
定員10人の募集を公開する。
コード上の名前
RecruitmentEntity
言葉
参加申請
現在の意味
参加希望者が、参加したい募集に対して行う操作。
具体例・ルール
申込期限までに参加を申請する。
コード上の名前
requestParticipation()
言葉
申込期限
現在の意味
募集へ参加を申し込める最後の日時。
具体例・ルール
期限を過ぎた申請は受け付けない。
コード上の名前
participationRequestDeadline

すべての言葉を網羅する必要はありません。認識が分かれやすい言葉、重要な業務ルールを含む言葉、コードの設計に影響する言葉から記録します。

会話・画面・コードで使う

記録した言葉を、実際の会話、仕様、画面、テスト、コードで使います。コードを英語で書く場合も、業務上の意味と対応する名前を選びます。

意味がずれている例

会話では「参加申請」、画面では「予約」、コードでは join() と呼び、申請中なのか確定済みなのか分からない。

対応が分かる例

会話と画面では「参加申請」、コードでは requestParticipation() と表し、「参加確定」と区別する。

言葉を更新する

業務に詳しい人が「その言い方はしない」と感じたり、一つの言葉が複数の意味で使われていると気づいたりしたら、言葉を見直します。用語集だけを直すのではなく、具体例、ドメインモデル、画面、コードも一緒に確認します。

同じ言葉でも仕事の範囲によって意味が異なるなら、全社共通の定義へ無理に統一しません。意味の違いが一貫して現れる場所は、Bounded Contextの境界を考える手がかりになります。

目指すのは用語集の完成ではなく、仕事への理解が、会話とドメインモデルとコードに同じ意味で表れている状態です。

この内容を書くときに確認した情報

原典、著者による説明、実践者の資料を分けて確認しています。

  1. Eric Evans · original-reference

    DDD Reference — Definitions and Pattern Summaries

    最終確認: 2026-08-08

  2. Martin Fowler · practitioner-article

    Ubiquitous Language

    最終確認: 2026-08-08