ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本
  • 発売日:2020/02/13
  • 出版社:翔泳社
  • ISBN:9784798150727

サンプルサンプル

ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本

ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本

通常価格 3,960 円(税込)
通常価格 セール価格 3,960 円(税込)
SALE 売り切れ
  • 発売日:2020/02/13
  • 出版社:翔泳社
  • ISBN:9784798150727
ネットストア在庫 詳細
    読み込み中...
My店舗在庫
    My店舗登録で店頭在庫と店舗お受け取り可否が確認できます。(要ログイン)
  • 在庫表示のサンプル
商品説明
学習しやすいパターンが満載!

ドメイン駆動設計をやさしく学べる入門書!



【本書の概要】

本書は、

『エリック・エヴァンスのドメイン駆動設計』(ISBN978-4-7981-2196-3、翔泳社)、

『実践ドメイン駆動設計』(ISBN978-4-7981-3161-0、翔泳社)

に感銘を受けた著者が贈る、ドメイン駆動設計の入門書です。


【対象読者】

『エリック・エヴァンスのドメイン駆動設計』や

『実践ドメイン駆動設計』をこれから読もうとしている方、

もしくはすでに読んだものの、「もう少しやさしい入門書も読みたい」

と感じているエンジニアの方を対象としています。



【本書の特徴】

ドメイン駆動設計において、実践が難しいものは後回しにして、

理解しやすい実装パターンからドメイン駆動設計の世界に

飛び込んでもらうことを目的としています。


そこで初心者にとって、理解しやすい、そして実践しやすいパターンからスタートできるよう、

解説を工夫しています。

またドメイン駆動設計で頻出するパターンの記述方法やその目的も併せて解説しています。



本書で解説するパターンは以下のとおりです。



【知識を表現するパターン】

・値オブジェクト

・エンティティ

・ドメインサービス



【アプリケーションを実現するためのパターン】

・リポジトリ

・アプリケーションサービス

・ファクトリ



【知識を表現する、より発展的なパターン】

・集約

・仕様

目次
Chapter 1 ドメイン駆動設計とは

 1.1 ドメイン駆動設計とは何か

 1.2 ドメインの知識に焦点をあてた設計手法

 1.3 本書解説事項と目指すゴール

 COLUMN|ドメイン駆動設計の実践を難しくするもの

 1.4 本書で解説するパターンについて

 COLUMN|なぜいま、ドメイン駆動設計か



Chapter 2 システム固有の値を表現する「値オブジェクト」

 2.1 値オブジェクトとは

 2.2 値の性質と値オブジェクトの実装

 COLUMN|不変のメリット

 2.3 値オブジェクトにする基準

 2.4 ふるまいをもった値オブジェクト

 2.5 値オブジェクトを採用するモチベーション

 2.6 まとめ



Chapter 3 ライフサイクルのあるオブジェクト「エンティティ」

 3.1 エンティティとは

 3.2 エンティティの性質について

 COLUMN|セーフティネットとしての確認

 3.3 エンティティの判断基準としてのライフサイクルと連続性

 3.4 値オブジェクトとエンティティのどちらにもなりうるモデル

 3.5 ドメインオブジェクトを定義するメリット

 3.6 まとめ



Chapter 4 不自然さを解決する「ドメインサービス」

 4.1 サービスが指し示すもの

 4.2 ドメインサービスとは

 4.3 ドメインサービスの濫用が行き着く先

 4.4 エンティティや値オブジェクトと共にユースケースを組み立てる

 COLUMN|ドメインサービスの基準

 4.5 物流システムに見るドメインサービスの例

 COLUMN|ドメインサービスの命名規則

 4.6 まとめ



Chapter 5 データにまつわる処理を分離する「リポジトリ」

 5.1 リポジトリとは

 COLUMN|リポジトリはドメインオブジェクトを際立たせる

 5.2 リポジトリの責務

 5.3 リポジトリのインターフェース

 COLUMN|nullの是非とOption型

 5.4 SQLを利用したリポジトリを作成する

 5.5 テストによる確認

 5.6 テスト用のリポジトリを作成する

 5.7 オブジェクトリレーショナルマッパーを用いたリポジトリを作成する

 5.8 リポジトリに定義されるふるまい

 5.9 まとめ



Chapter 6 ユースケースを実現する「アプリケーションサービス」

 6.1 アプリケーションサービスとは

 COLUMN|アプリケーションサービスという名前

 6.2 ユースケースを組み立てる

 COLUMN|煩わしさを減らすために

 COLUMN|エラーかそれとも例外か

 6.3 ドメインのルールの流出

 6.4 アプリケーションサービスと凝集度

 6.5 アプリケーションサービスのインターフェース

 6.6 サービスとは何か

 6.7 まとめ



Chapter 7 柔軟性をもたらす依存関係のコントロール

 7.1 技術要素への依存がもたらすもの

 7.2 依存とは

 7.3 依存関係逆転の原則とは

 7.4 依存関係をコントロールする

 7.5 まとめ



Chapter 8 ソフトウェアシステムを組み立てる

 8.1 ソフトウェアに求められるユーザーインターフェース

 COLUMN|ソフトウェアとアプリケーションの使い分け

 8.2 コマンドラインインターフェースに組み込んでみよう

 COLUMN|シングルトンパターンと誤解

 8.3 MVCフレームワークに組み込んでみよう

 COLUMN|コントローラの責務

 8.4 ユニットテストを書こう

 8.5 まとめ

 COLUMN|本当に稀な怪談話



Chapter 9 複雑な生成処理を行う「ファクトリ」

 9.1 ファクトリの目的

 9.2 採番処理をファクトリに実装した例の確認

 COLUMN|ファクトリの存在に気づかせる

 9.3 ファクトリとして機能するメソッド

 9.4 複雑な生成処理をカプセル化しよう

 COLUMN|ドメイン設計を完成させるために必要な要素

 9.5 まとめ



Chapter 10 データの整合性を保つ

 10.1 整合性とは

 10.2 致命的な不具合を確認する

 10.3 ユニークキー制約による防衛

 10.4 トランザクションによる防衛

 COLUMN|結局どれを使うべきか

 10.5 まとめ



Chapter 11 アプリケーションを1から組み立てる

 11.1 アプリケーションを組み立てるフロー

 11.2 題材とする機能

 11.3 サークルの知識やルールをオブジェクトとして準備する

 11.4 ユースケースを組み立てる

 11.5 まとめ



Chapter 12 ドメインのルールを守る「集約」

 12.1 集約とは

 COLUMN|集約を保持するコレクションを図に表すか

 COLUMN|よりきめ細やかなアクセス修飾子(Scala)

 12.2 集約をどう区切るか

 COLUMN|IDのゲッターに対する是非

 12.3 集約の大きさと操作の単位

 COLUMN|結果整合性

 12.4 言葉との齟齬を消す

 12.5 まとめ



Chapter 13 複雑な条件を表現する「仕様」

 13.1 仕様とは

 13.2 仕様とリポジトリを組み合わせる

 COLUMN|遅延実行による最適化

 13.3 まとめ



Chapter 14 アーキテクチャ

 14.1 アーキテクチャの役目

 14.2 アーキテクチャの解説

 14.3 まとめ



Chapter 15 ドメイン駆動設計のとびらを開こう

 15.1 軽量DDDに陥らないために

 COLUMN|パターンの濫用とパターンを捨てるとき

 15.2 ドメインエキスパートとモデリングをする

 15.3 ユビキタス言語

 COLUMN|ユビキタス言語と日本語の問題

 15.4 境界付けられたコンテキスト

 15.5 コンテキストマップ

 15.6 ボトムアップドメイン駆動設計

 15.7 まとめ



Appendix ソリューション構成

 A.1 ソフトウェア開発の最初の一歩

 COLUMN|C#特有のプロジェクト管理用語

 A.2 ソリューション構成

 A.3 まとめ

詳細を表示する

カスタマーレビュー

honto本の通販ストアのレビュー(0件)

並び順:
1/1ページ

最近チェックした商品