翔泳社の公式通販SEshopは全国送料無料!
ヘルプ 法人のお客様へ 新規会員登録 ログイン
SEshop

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

成瀬 允宣(著)

商品番号
151680
販売状態
発売中
納品形態
会員メニューよりダウンロード
発売日
2020年02月13日
ISBN
9784798151687
データサイズ
約11.9MB
制限事項
印刷可・テキストのコピー可
キーワード
プログラミング  開発  DDD  電子書籍【PDF版】

3,520円(税込)(本体3,200円+税10%)
送料無料

320pt (10%)
ポイントの使い方はこちら

在庫あり

初回購入から使えるポイント500円分プレゼント

紙の書籍はこちら 紙書籍とPDF版のセット商品はこちら

※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。

  • ポスト
  • 本製品は電子書籍【PDF版】です。
  • ご購入いただいたPDFには、購入者のメールアドレス、および翔泳社独自の著作権情報が埋め込まれます。
    PDFに埋め込まれるメールアドレスは、ご注文時にログインいただいたアドレスとなります。
    Amazon Payでのお支払いの場合はAmazonアカウントのメールアドレスが埋め込まれます。
  • 本製品を無断で複製、転載、譲渡、共有および販売を行った場合、法律により罰せられる可能性がございます。
  • ご購入の前に必ずPDF利用案内をお読みください。

学習しやすいパターンが満載!
ドメイン駆動設計をやさしく学べる入門書!


【本書の概要】
本書は、
『エリック・エヴァンスのドメイン駆動設計』(ISBN978-4-7981-2196-3、翔泳社)、
『実践ドメイン駆動設計』(ISBN978-4-7981-3161-0、翔泳社)
に感銘を受けた著者が贈る、ドメイン駆動設計の入門書です。

【対象読者】
『エリック・エヴァンスのドメイン駆動設計』や
『実践ドメイン駆動設計』をこれから読もうとしている方、
もしくはすでに読んだものの、「もう少しやさしい入門書も読みたい」
と感じているエンジニアの方を対象としています。

【本書の特徴】
ドメイン駆動設計において、実践が難しいものは後回しにして、
理解しやすい実装パターンからドメイン駆動設計の世界に
飛び込んでもらうことを目的としています。

そこで初心者にとって、理解しやすい、そして実践しやすいパターンからスタートできるよう、
解説を工夫しています。
またドメイン駆動設計で頻出するパターンの記述方法やその目的も併せて解説しています。

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

【知識を表現するパターン】
・値オブジェクト
・エンティティ
・ドメインサービス

【アプリケーションを実現するためのパターン】
・リポジトリ
・アプリケーションサービス
・ファクトリ

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

PDF版のご利用方法

  1. ご購入後、SEshopにログインし、会員メニューに進みます。
  2. ご購入電子書籍およびデータ > [ご購入電子書籍およびダウンロードデータ一覧]をクリックします。
  3. 購入済みの電子書籍のタイトルが表示されますので、リンクをクリックしてダウンロードしてください。
  4. PDF形式のファイルを、お好きな場所に保存してください。
  5. 端末の種類を問わず、ご利用いただけます。

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 まとめ

各種問い合わせは以下のリンクからご連絡ください

感想・レビュー

めかぶこんぶ さん

2020-03-05

☆一文要約:DDDは大きな概念だが、ボトムアップに軽量DDDからの導入でも、コードの改善につながる! ●要約:DDDをボトムアップで、一つ一つコードレベルの例ち共に解説。DDD本書より圧倒的に読みやすいので、最初の一歩には最適か。大きな概念としてのDDDを着実に自分のプロダクトに活かす方法が見えてくる。軽量DDD(パターンのみの適用)は本来目指すところではないものの、それだけでもコードの改善にはつながる。できるところからはじめて、将来的にドメイン駆動設計ができるようになるための第一歩になる一冊と感じた。

忘備録 さん

2021-07-12

エンティティ、バリューオブジェクト、ドメインサービス、アプリケーションサービスなど、DDDの基本となる概念の理解が出来た。これらの知識は本格的にDDDを学ぶ上での下地になる。

つるたん さん

2021-07-04

再読。DDDについてとてもわかり易く書かれており読んでいて気持ちよかった。 Value ObjectとEntityの違い、Specificationを使用し仕様を外部へ切り出す、抽象へ依存させることによる依存関係逆転の法則など役立つ知識が多い。しかしこれらの知識を実装へ落とし込むことがDDDではなく、ドメインを主軸において開発することの重要性を説いていた。

関連商品

おすすめ特集

プログラミング入門書大特集

翔泳社のプログラミング書籍の中から、入門・初級者向けの書籍をピックアップ!

Linuxおすすめ本特集

【Linux本特集】入門~達人レベルまで!クラウド時代の必須知識Linuxを学ぶおすすめの本

ライティングおすすめ本

ライティングのスキルアップにおすすめの本。Webライティングやコピーライティングなど

マネー本特集

お金と経済の基礎知識から、資産形成・投資術、お金教育や介護まで。暮らしに役立つマネー本

インテリア本特集

おしゃれな部屋作りのヒントやインテリアの基礎知識、色使い、うつわや洋食器の知識まで、幅広い書籍をご紹介

事務職におすすめの本

Excel、日商簿記、業務の自動化を実現するRPAやPythonの技術など、事務職としてステップアップしたい人に!

特集をもっと見る