DDD
ドメイン駆動設計

ちょっとずつ読むドメイン駆動設計 第三部 より深い洞察へ向かうリファクタリング 第九章 暗黙的な概念を明示的にする4 文献・実験

前々々回より

暗黙的な概念を導き出すためのヒントはどこにあるか。

  1. チームの言語に耳を傾ける
  2. 設計のぎこちない点・エキスパートの発言で矛盾すると思われる点を詳細に調べる
  3. ドメインに関する文献を読む
  4. 大量の実験をする

続きです

ドメインに関する文献を読む

モデルの概念を探す時には、自明のことを見逃してはならない(第三部第九章より)

いろいろなドメインでも、基本的な用語や通念を解説している文献がありますよね。
そういった文献からヒントが得られることが多々あります。

書籍だけではなく、専門雑誌や専門紙なんかもその業界を知り、用語を得るヒントが満載です。

例えば、アパレル系であれば、WWD繊研(せんけん)新聞など参考になります。

また、日本人なら同じ業界の海外のサイトなども参考になります。
ECサイトであれば、Amazon.co.jpではなく、Amazon.comが参考になります。

特に、こういったサイトのHelpページは業務の用語が満載です!
例えば、ECサイトでよくあるサービスである、「当日お急ぎ便」。
comのヘルプページを見ると「One-Day Shipping」とありますね。

しかし、これもきちんとドメインエキスパートと会話をしないといけません。
この英語だと、1日でお届けと言う意味になりますよね。

ではなくて、その日のうちに発送(お届け日はわからない)という意味での「当日」であると、恐らくOne-Day Shippingは使えません。

こういったことも文献・サイトをヒントに会話を始めることができます。

大量の実験をする

わかりやすい、有用なものを見つけるためには、会話に出てきた手がかりを、片手では数え切れないくらい辿らなければならなかっただろう。それも、後で最低1回は取り替えることになる。(第三部第九章より)

方向性を変えることは、ムダではなく、変更するたびに、より深い洞察がモデルに反映されていきます。

他に方法はなく、銀の弾丸もありません。実験&実験&実験です。

設計における誤りを避けようとすれば、結果としてできるものの品質は低くなる。基になる経験が少ないからだ(第三部第九章より)

深いですね。実験を繰り返すことで、経験を得ることができて、品質は上がっていく。逆に実験・失敗を避けるということは経験をも避けるということで品質が下がっていくということです。

やはり、実験&実験&実験が大事ですね。