ドメイン駆動設計で、役に立つソフトウェアを作ろう
★★★★☆
役に立つソフトウェアを作るには、問題領域(ドメイン)に詳しい人の知識を、コードに変換して、動くソフトウェアにすること。
この本は、そのためのテクニック、ノウハウ、パターンを満載したすばらしい設計ガイドブックです。現場で分析・設計をする方にぜひ読んでほしい本です。
4部構成になっています。
Part 1 : ドメイン駆動設計(DDD)の目指すもの。基本コンセプト。
Part 2 : モデリングの基本テクニック
Part 3 : ドメインを深く理解する(モデルのリファクタリング)
Part 4 : 大きくて複雑な問題を解きほぐす
Part 1 は、考え方や用語の説明が中心です。ビジネスに価値をもたらし、利用者が喜んで使ってくれるソフトウェアを作るには、ドメイン駆動設計が効果的、という内容です。
Part 2 は、モデリングの基本要素、クラス・関連・パッケージの効果的な使い方のガイドです。これらの要素を細かいところまで気を配って使うことで、どれだけ、モデルが明快になるかを丁寧に説明しています。
なんとなく四角と矢印を描いているだけではダメなんだと、目からうろこが落ちる思いでした。
また、モデルと、Java や SQL の実装が直接関連している点の説明も具体的に参考になります。
Part 3 は、ドメインの表面的な理解、初期のぎこちないモデルをリファクタリングすることで、隠されていたドメインの知識、構造を明らかにしていく過程の説明です。
モデリングと設計を洗練させるための実践ノウハウが詰まっています。
Part 4 は、現実世界の複雑な問題への取り組み方の実践ノウハウ集です。
異なるモデルを元にしたシステム間を連携する時の問題の解決方法。
モデルが入り組んできた時の、関心ごとの分離の方法。
現実の複雑なアプリケーション開発に取り組む時のいろいろな解決パターンとそのトレードオフ関係が具体的に説明されています。
各章の最初に、その章の内容を象徴した写真が載っています。
最初は、ぴんとこない写真ばかりでした。
何度も読み返して、章の内容が理解できると、突然、写真の意味がわかった、という経験を何回もしました。
ほんとうに奥が深い本です。私は、何回も読み返していて、そのたびに新しい発見があります。
ドメインモデル構築方法の決定版
★★★★★
マーチン・ファウラーの『エンタープライズアプリケーションアーキテクチャパターン』(PoEAA)では、
エンタープライズアプリの心臓部であるビジネスロジックの作り方には(1)トランザクションスクリプト、
(2)ドメインモデル、(3)テーブルモジュールの3パターンがあると説明されています。
複雑なビジネスロジック構築には、(2)のドメインモデルが一番いいと書かれているのですが、
PoEAAはアーキテクチャ全般をまんべんなくパターン化することに主眼が置かれているので、
ドメインモデルについてそれ以上詳しく説明してくれていません。
本書DDDは、ファウラーも推薦しているように、この「じゃ、ドメインモデルをどうやって構築すればいいの?」
を詳しく教えてくれる本です。基本的なOO開発方法をマスターし、ピュアなOOスタイルではないながら
アプリをきちんと作れるようになった中級以上のエンジニアが、今度は複雑なビジネスロジックをOOスタイルで
美しくかつ保守しやすい形で構築することを目指すときの必携書です。
For Software Projects
★★★★☆
This Book focuses on domain and domain logic.it also explains as that complex domain designs should be based on a model.