msksgm’s blog

msksgm’s blog

Webエンジニアです。日々の勉強記録、技術書感想、美術観賞感想を投稿します。

「ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本」感想

概要

ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本」(以下、成瀬本)を読みました。 感想について記述していきます。

感想

タイトルの通り、ドメイン駆動設計(DDD)をボトムアップから理解する本です。 ボトムアップから入るので、戦術的 DDD の解説が主です。 値オブジェクト、エンティティ、リポジトリ、ファクトリなどの頻繁に解説される内容をソースコードベースに解説してくれるので、抽象的な説明はほとんどないためわかりやすかった印象です。しかし、終盤あたりになると複雑な実装の解説が登場し、紙面においてソースコードを読み取るのが難しかった印象があります。 ただ、サンプルコードも用意されているので、これらの戦術的 DDD を知りたい人にはお勧めできる内容だと思います。

気になった点として、境界づけられたコンテキスト、集約、ユビキタス言語といった戦略的 DDD の内容は終盤にでてきます。 終盤にでてくることに対して以下2つの意見を考えました。

  • DDD を導入するにあたって、これらを最後に持ち出すことはないと思う。この解説の仕方は DDD の考え方とマッチしているのか?
  • 集約やコンテキストは実装ベースじゃないと気がつけないことも多いそうだし、手戻りが発生しそう。ボトムアップで考えていくのも正解なのかもしれない

これは、自分自信は業務でも個人開発でも導入したことがないので、どちらが正しいかは判断ができませんでした。

この点に関連すると、他の DDD 本として、松岡さんの「ドメイン駆動設計 モデリング/実装ガイド」(以下、松岡本)が同時期に発売されています。 松岡本と成瀬本を比較すると、アプローチが真逆(松岡本がトップダウン、成瀬本がボトムアップ)です。 そのため2冊を比較しながら読むと DDD について異なる視点を得られどちらが正しいか考えるようになると思います。

著者の成瀬さんの YouTube チャンネル「なるセミ」でレビュアーによるパネルディスカッションがされているので、読む前か読後に視聴することをお勧めします。 レビュアーは DDD 界隈の有名人ばかりなので、この本に限らず DDD について非常に参考になる意見が飛び交っています。

www.youtube.com

直接的に関係ないですが、戦術的 DDD 学ぶさいには「ユースケース駆動設計実践ガイド」を読むといいと思います。 ロバストネス図によって、(UCDD 本の)ドメインモデル、ユースケース図、ユースケース記述を洗練させるアプローチを学ぶので、DDD をトップダウンで実践する気持ちになります。

こちらは ひろどら さんが解説動画だしているので、視聴をおすすめします。

www.youtube.com