ユビキタス言語
Domain-Driven Designの中核概念。ドメイン専門家と開発者が共有する言葉を統一し、コードからドキュメント、会話まで一貫して使用する。
目的
異なる専門性を持つ人々の間で概念を変換する際の認知負荷(翻訳負荷)を削減する。
実践方法
- ドメイン専門家との対話で言葉を抽出
- コード上のクラス名・メソッド名に反映
- ドキュメントでも同じ用語を使用
- 会議やディスカッションでも統一
注意点
Bounded Context(境界づけられたコンテキスト)ごとにユビキタス言語は異なりうる。同じ単語でも文脈によって意味が変わる場合は、境界を分ける。
認知的距離との関係
ユビキタス言語の統一は、認知的距離のベクトル的解釈でいえば、異なる専門性を持つ人々の意味空間上のベクトルの方向を揃える行為。方向が揃えば深さの違いは足場で埋められるが、方向が異なると(同じ言葉で別のことを指していると)フィードバックがそもそも着地しない。
関連
- 認知的距離 - 言語統一はスキーマの方向を揃える行為
- Domain-Driven Design
- 認知負荷
- コードレビュー