社内LT会の好評だったところ一部抜粋。
DDD関連の本を読み漁って、それぞれの感想一言メモと、どの順で読んだらいいか考えてみたやつを紹介。
2021/05/15 追記
こちらでも紹介した通り、最初に読むべきは現場で役立つシステム設計の原則(2017年発行)だと訂正したいと思います。紹介追記しておきます。- オブジェクト指向の考え方を用いて、変化に強い設計をするための実践紹介。リーダブルコード的な内容や、ドメインモデルの見つけ方、その実装方法など
- DDDと謳ってないが、やってることはDDD
- DDD特有のわかりにくい用語が全然出てこず読みやすい
- DDDを薦めるうえで、間違いなく一番最初に読んでほしい一冊
戦略的設計と戦術的設計
この記事でDDDの内容にはちゃんと触れないけどこの点だけ説明。
DDDの考え方、パターンは数あれど、それらは 「戦略的設計」と「戦術的設計」に分類することができる。 関連書籍はこのどちらかに偏っていることが多い。
戦略的設計 ... チームで使うパターン。よりマネジメント向き。
戦術的設計 ... テクニカルなパターン。具体的なクラス設計とか。
お硬めの2冊
エリック・エヴァンスのドメイン駆動設計
原著: 2003年、訳書: 2011年発行
Evans本。原著。古い箇所もあるけどすべてが詰まっている。
レビューなどで「抽象的でわかりにくい」ってコメントが多くて身構えていたけど、思ってたより具体的な例も出てきて楽しめた。
(ある程度DDDに関する知識蓄えてからってのが大きいけど。)
実践ドメイン駆動設計
原著: 2013年、訳書: 2015年発行
IDDD本。Evans本からより実践方面に落とし込んだもの。戦術的設計が多め。
Evans本にはない概念も登場する。(ドメインイベントあたり)
「Evans本よりこの本から読んだほうがとっつきやすい」ってコメントがいくつかあったのでここから入ったけど、Evans本の内容が前提として扱われているので割と辛い。
やわらかめ3冊
わかる!ドメイン駆動設計 ~もちこちゃんの大冒険~
2016年発行
同人誌。ほぼ戦略的設計のみ扱う。
Evans本、IDDD本を引用しつつゆるふわに解説されててとっつきやすい。
ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本
2020年発行
今年出たばかりの本。戦術的設計中心。
DDDで使われるパターンをいきなりコードで説明する感じで、具体的でイメージがすぐに掴める。
初学者の「DDD難しそう辛そう」というイメージを解きほぐすような解説がとてもよかった。
C#だけどJava知ってたら違和感ない内容だった。
「実践ドメイン駆動設計」から学ぶDDDの実装入門
2019年発行
IDDD本の副読本。もともとCodeZineの連載物で、Amazonでオンデマンドで印刷できるやつ。 構成はIDDD本と全く同じで、一緒に読み進めるとよさそう。
読み順について
読みやすさ、扱う内容でマッピングして、個人的おすすめな読み順をつけるとこんな感じ。
ドメイン駆動設計入門がとにかくわかりやすく、「DDD頑張れそう」って勇気もらえるからここからがオススメ。戦術的設計に偏ってるので、その後はもちこちゃんで戦略的設計を掴む。
そこからEvans本→IDDD本(副読本も一緒がいいかも?)という流れで、頭悩ませながら読むのがよいんじゃないかなって思う。
まとめ
これで僕は完全に理解しました。エンジニア的な意味でです。
業務などでの実践面はまだまだなのでチョットデキルようになりたいです。