【書評】ドメイン駆動設計 モデリング/実装ガイド
はじめに
コードを書いていると、途中で「このモジュールなんか長くなってきたな・・・どうしよ」「この処理ってここのモジュールに書くべきなんだっけ」等と設計的な悩みが発生することが結構あります。
チームで開発しているので、そういう場合には途中でSlackやビデオチャットで相談したり、コードレビューの段階でやりとりして解決していました。
そこで、ふと「いつも的確なコメントくれるなぁ」と思っていたメンバーがいたので、話を聞いてみると「ドメイン駆動設計」を参考にしているとのことで、読んだ本を教えてもらいました。それが「ドメイン駆動設計 モデリング/実装ガイド」でした。
読んでみると最初の悩みがかなりスッキリしたので、私と同じような悩みを持っている方向けにブログを書くことにしました。
本の簡単な概要
初めてDDD(以下、ドメイン駆動設計)を学ぶ方や、実際に着手して「難しい」と感じているエンジニアを対象とした解説書です。
公式サイト:https://booth.pm/ja/items/1835632
目次
- 第1章 DDD概要
- 第2章 モデリングから実装まで
- 第3章 DDD固有のモデリング手法
- 第4章 設計の基本原則
- 第5章 アーキテクチャ
- 第6章 ドメイン層の実装
- 第7章 ユースケース(アプリケーション)層の実装
- 第8章 CQRS
- 第9章 プレゼンテーション層の実装
- 第10章 アーキテクチャ全般・ライブラリなど
- 第11章 困ったときには
この本のよいところ
個人的に良いと思ったところを挙げます。
コンパクト
いわゆる「エヴァンス本」や「実践DDD」に比べてかなりコンパクトに纏まっています。
ページ数は合計106程なので、毎週1時間程のゆっくりなペースでも3ヶ月程で読了できました。
具体例が多い
実際に寄せられた質問を元にQ&Aページが作成されているとのことで、リアルな具体例を上げた説明が豊富です。例えば「ソート処理はドメイン層に置くべきなのか、それともインフラストラクチャ層に置くべきなのか、両方なのか」といったものです。
なので、じゃあこれは自分の開発しているプロジェクトに置き換えるとどうだろう?と考えてみると気づきが得られやすかったです。
まとめ
これからDDDを学んで取り入れて設計を良くしたいエンジニアに「ドメイン駆動設計 モデリング/実装ガイド」はおすすめの本です。
「このモジュールなんか長くなってきたな・・・どうしよ」「この処理ってここのモジュールに書くべきなんだっけ」で止まっていたDDD全然わからないマンが週1時間、3ヶ月で「このロジックはドメイン層かなー」みたいな解を出せるようになりました。
参考
- ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH https://booth.pm/ja/items/1835632