エリック・エヴァンスのドメイン駆動設計(Eric Evans)
書籍情報
- 著者:Eric Evans(著), 牧野祐子(訳), 今関剛(訳), 和智右桂(訳)
- 発行日:2011-04-08
- ISBN:9784798121963
- URL:https://www.shoeisha.co.jp/book/detail/9784798121963
書籍目次
- 日本語版への序文
- 日本語版推薦文
- 序文
- まえがき
- 謝辞
- 翻訳者謝辞
- 第1部 ドメインモデルを機能させる
- 第1章 知識をかみ砕く
- 効果的なモデリングの要素
- 知識のかみ砕き
- 継続的学習
- 知識豊富な設計
- 深いモデル
- 第2章 コミュニケーションと言語の使い方
- ユビキタス言語(UBIQUITOUS LANGUAGE)
- 声に出してモデリングする
- 1つのチームに1つの言語
- ドキュメントと図
- 説明のためのモデル
- 第3章 モデルと実装を結びつける
- モデル駆動設計(MODEL-DRIVEN DESIGN)
- モデリングパラダイムとツールによるサポート
- 骨格を見せる:なぜモデルがユーザにとって重要なのか?
- 実践的モデラ(HANDS ON MODELERS)
- 第1章 知識をかみ砕く
- 第2部 モデル駆動設計の構成要素
- 第4章 ドメインを隔離する
- レイヤ化アーキテクチャ(LAYERED ARCHITECTURE)
- ドメイン層はモデルが息づく場所
- 利口なUI「アンチパターン」(SMART UI ANTI-PATTERN)
- その他の隔離
- 第5章 ソフトウェアで表現されたモデル
- 関連
- エンティティ(ENTITIES)(別名 参照オブジェクト(REFERENCE OBJECTS))
- 値オブジェクト(VALUE OBJECTS)
- サービス(SERVICES)
- モジュール(MODULES)(別名 パッケージ(PACKAGES))
- モデリングパラダイム
- 第6章 ドメインオブジェクトのライフサイクル
- 集約(AGGREGATES)
- ファクトリ(FACTORIES)
- リポジトリ(REPOSITORIES)
- 関係データベースに合わせてオブジェクトを設計する
- 第7章 言語を使用する:応用例
- 貨物輸送システムを導入する
- ドメインを隔離する:アプリケーションの導入
- エンティティと値オブジェクトを区別する
- 輸送ドメインの関連を設計する
- 集約の境界
- リポジトリを選択する
- シナリオをウォークスルーする
- オブジェクトの生成
- リファクタリングのために立ち止まる:貨物集約についてのもう1つの設計
- 輸送モデルにおけるモジュール
- 新機能を導入する:配分チェック
- 最後に
- 第4章 ドメインを隔離する
- 第3部 より深い洞察へ向かうリファクタリング
- リファクタリングのレベル
- 深いモデル
- 深いモデル/しなやかな設計
- 発見のプロセス
- 第8章 ブレイクスルー
- ブレイクスルーの話
- 好機
- 基本への集中
- エピローグ:新しい洞察の連鎖
- 第9章 暗黙的な概念を明示的にする
- 概念を掘り出す
- それほど明白でない概念をモデル化する方法
- 仕様(SPECIFICATION)
- 第10章 しなやかな設計
- 意図の明白なインタフェース(INTENTION-REVEALING INTERFACES)
- 副作用のない関数(SIDE-EFFECT-FREE-FUNCTIONS)
- 表明(ASSERTIONS)
- 概念の輪郭(CONCEPTUAL CONTOURS)
- 独立したクラス(STANDALONE CLASSES)
- 閉じた操作(CLOSURE OF OPERATIONS)
- 宣言的な設計
- 設計の宣言的スタイル
- 攻める角度
- 第11章 アナリシスパターンを適用する
- 第12章 デザインパターンをモデルに関係づける
- ストラテジー(STRATEGY)(別名 ポリシー(POLICY))
- コンポジット(COMPOSITE)
- なぜ、フライウェイトではないのか?
- 第13章 より深い洞察へ向かうリファクタリング
- 開始
- 探究チーム
- 先達の技
- 開発者のための設計
- タイミング
- 好機となる危機
- 第4部 戦略的設計
- 第14章 モデルの整合性を維持する
- 境界づけられたコンテキスト(BOUNDED CONTEXT)
- 継続的な統合(CONTINUOUS INTEGRATION)
- コンテキストマップ(CONTEXT MAP)
- 境界づけられたコンテキスト間の関係
- 共有カーネル(SHARED KARNEL)
- 顧客/供給者の開発チーム(CUSTOMER/SUPPLIER DEVELOPMENT TEAMS)
- 順応者(CONFORMIST)
- 腐敗防止層(ANTICORRUPTION LAYER)
- 別々の道(SEPARATE WAYS)
- 公開ホストサービス(OPEN HOST SERVICE)
- 公表された言語(PUBLISHED LANGUAGE)
- 象のモデルを統一する
- 変換
- 第15章 蒸留
- コアドメイン(CORE DOMAIN)
- 蒸留の拡大
- 汎用サブドメイン(GENERIC SUBDOMAINS)
- ドメインビジョン声明文(DOMAIN VISION STATEMENT)
- 強調されたコア(HIGHLIGHTED CORE)
- 凝集されたメカニズム(COHESIVE MECHANISMS)
- 蒸留して宣言的スタイルにする
- 隔離されたコア(SEGREGATED CORE)
- 抽象化されたコア(ABSTRACT CORE)
- 深いモデルの蒸留
- リファクタリングの対象を選ぶ
- 第16章 大規模な構造
- 進化する秩序(EVOLVING ORDER)
- システムのメタファ(SYSTEM METAPHOR)
- 責務のレイヤ(RESPONSIBILITY LAYERS)
- 知識レベル(KNOWLEDGE LEVEL)
- 着脱可能コンポーネントのフレームワーク(PLUGGABLE COMPONENT FRAMEWORK)
- 構造による制約をどの程度厳しくするべきか?
- ふさわしい構造へのリファクタリング
- 第17章 戦略をまとめ上げる
- 大規模な構造と境界づけられたコンテキストを組み合わせる
- 大規模な構造と蒸留を組み合わせる
- まず評価する
- 誰が戦略を策定するのか?
- 戦略的設計上の意思決定を行うために欠かせない6つのこと
- 第14章 モデルの整合性を維持する
- 結論
- エピローグ
- 展望
- 付録
- 用語解説
- 参考文献
- 索引