Help us understand the problem. What is going on with this article?

DDD関連書籍メモ

More than 3 years have passed since last update.

Domain-Driven Design(DDD)と言えばエリック・エヴァンズの「ドメイン駆動設計」ですが、いろいろ調べてみると本当にDDDを行う上では更に多くの知識が必要だと感じたので、その動画と紹介されている書籍をメモ。
基本的に設計やデザインパターンに関する書籍が中心です。

タイトル 著者 初版 補足
オブジェクト指向における再利用のためのデザインパターン(GoF) エリック・ガンマ, ラルフ・ジョンソン, リチャード・ヘルム, ジョン・ブリシディース, その他 1995 言うまでもなく必読。「Java言語で学ぶデザインパターン入門」でもOK。※2
Data Model Patterns David Hay 1995 アナリシスパターンの元ネタ。ドメインモデルの名前の設計や構造の参考に。※2
アナリシスパターン マーチン・ファウラー 1996 オブジェクト指向の広場で「激難」の評価 ※2
UMLモデリングのエッセンス マーチン・ファウラー 1998 UMLを現実的に使う。美味しいところを蒸留して、凝縮して実践的に使える。※2
実践UML クレーグ・ラーマン 1998 ※2
ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系(PoSA) F.ブッシュマン, H.ローネルト, M.スタル, R.ムニエ, P.ゾンメルラード, その他 2000 GoF本より、ややアーキテクチャ寄りの本。※2,3
The Data Model Resource Book Len Silverston 2001 実際にモデリングする時の英単語を調べるのに役立つ。Data Model Patternsよりサンプル多め。※2
ストリームラインオブジェクトモデリング ジル・ニコラ, マイク・アベニー, マーク・メイフィールド, Jill Nicola, Mike Abney, その他 2001 ビジネスルールをUMLに落とすとどうなるか。※2
マルチパラダイムデザイン James O. Coplien 2001 マルチパラダイムデザイン(Multi-Paradigm Design: MPD)は、James O. Coplien氏の提唱する設計パラダイム。MPDは、認知言語学の現代的なカテゴリー理論と共通性・可変性に基づいて、問題をドメインとドメイン間の関係によって構造化(第1段階のドメインモデル=アーキテクチャを作成)し、ソリューションドメインの提供する抽象によってそれらを再定義・洗練(第2段階のドメインモデル=アーキテクチャを作成)するものである。ユビキタス言語(≒ドメイン辞書)、モデル駆動設計、境界付けられたコンテキスト(≒MPDのドメイン)等、DDDと多くの点でオーバーラップするため、本書を理解することはDDDの理解にも役立つ。なお、日本語版の内容は2000年の博士論文バージョンに基づいている。時系列は Multi-Paradigm Design for C++ (1998) -> Multi-Paradigm Design (Ph.D. Thesis) (2000) -> マルチパラダイムデザイン (2001) となる。
オブジェクトデザイン レベッカ・ワーフスブラック, アラン・マクキーン 2002 オブジェクト同士の責務、ロールなどのコラボレーション中心に書いた本。※2
エンタープライズ アプリケーションアーキテクチャパターン(PoEAA) マーチン・ファウラー 2002 ここまでのオブジェクトモデリングやドメイン設計の理論的な内容(アナリシスパターン、GoF、PoSA)から、現実的な設計を行う際にDBや画面するために、どのような選択をするかなどのパターン本。※2
ドメイン駆動設計 エリック・エヴァンズ 2003 ドメイン駆動設計と言えばまずこの本。
UMLモデリングの本質 児玉公信 2004 ドメインモデルの設計に参考になる。※2
アジャイルソフトウェア開発の奥義 ロバート・C・マーチン 2004 「原則」「デザインパターン」「プラクティス」を話題
Domain-Driven Design Quickly Abel Avram, Floyd Marinescu 2007 Eric Evans氏の「Domain Driven Design」の主要点を短く読みやすく要約 ※1
ユースケース駆動開発実践ガイド ダグ・ローゼンバーグ 2007 DDDの境界付けられたコンテキストを理解する手助けの一つとして役立つ、ユースケース駆動開発やその実例であるICONIX法を解説
Lean Architecture James O. Coplien, Gertrud Bjørnvig 2011 MPDを下敷きにしつつDCIアーキテクチャによる設計を解説する書。Coplien氏によると、DCIアーキテクチャとは「オブジェクトを使った、人々が問題を解決するために彼らの頭に持ち込む操作のモデルに応じたソフトウェアの構造化」であり、「手続き・オブジェクトパラダイムの重要な要素を組み込んだMPDの拡張サブセット」である。クラスベースの静的なモデルではなく、オブジェクトベースの動的なモデルを指向し、従来のオブジェクトモデルが捉えられていなかった「手続き」を、オブジェクトモデル上で捉えることを試みる。MPD同様、DDDと多くの点でオーバーラップする。「境界付けられたコンテキストはDCIのコンテキストよりもドメインモデルにより似ている」
Implementing Domain-Driven Design Vaughn Vernon 2013 ドメイン駆動設計をどのようにコードに落としこむかについて解説する書。
実践ドメイン駆動設計 ヴァーン・ヴァーノン 2015 "Implementing Domain-Driven Design"の邦訳。ドメイン駆動設計をどのようにコードに落としこむかについて解説する書。
Domain-Driven Design Distilled Vaughn Vernon 2016 同氏著作『実践ドメイン駆動設計』に続き、境界づけられたコンテキストの戦略的設計について深掘りした書

「※」は参考にしている動画番号

参考

  1. 20110409_DevLOVE「オープニングセッション」papandaさん和智右桂さん
  2. 20110409_DevLOVE「DDDについて」_和田卓人さん
  3. 20110409_DevLOVE「Deceptive Defiance of DDD」_角田 直行さん

参考(マルチパラダイムデザイン、DCI関連)

その他参考サイト

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away