エリックエバンスのドメイン駆動設計の「第2章 コミュニケーションと言語の使い方」まとめ

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

今回は、「第2章 コミュニケーションと言語の使い方」のまとめです。

ドメインモデル

ドメインモデルの位置付けとして、下記が記載されてました。

  • プロジェクトメンバの頭の中で構築された概念の集まり

  • 用語と概念の関係性を表現

ユビキタス言語

従来の問題点

  • ドメインエキスパートと開発メンバ、開発メンバ間で、用語を別々の意味で使うことを、認識していない。この状況だと、整合性の取れないソフトウェアが出来上がる。

  • 整合性をとるために、通訳が必要だが、通訳にかかる余分なコストと誤解のリスクまで加わるとマイナス要因が高すぎる。

ユビキタス言語の利用用途

  • 開発者の間で利用

  • コードに利用

  • タスクや機能の記述に利用

  • ドメインエキスパートと開発者の意思疎通に利用

ユビキタス言語の蒸留

  • 言語を使う上で問題があれば、より良いの表現を用いて、問題を解決する

  • ユビキタス言語の変更はモデルの変更であると認識する

  • 開発者は設計を妨害するようなあいまいさや不整合に目を光らせる

モデルの改良方法

  • ドメインエキスパートがモデルを理解できなかったら、何か問題がある証拠なので、見直す

  • モデルで表現された概念で話してみること

  • 打ち合わせの場で、ユビキタス言語で議論してみるのもよい

  • 表現すべきことをより簡単に言う方法を見つけ、モデル・コードに反映する