微服務下的領域驅動設計

孫連山

商品描述

本書以實戰理念為主旨, 對領域驅動設計的核心內容進行了全面解讀。
書籍主要由兩部分內容構成: 戰略與戰術。
第一部分以子域和限界為核心, 並透過案例的形式介紹如何在現實中將其進行實踐的知識; 
第二部分則圍繞應用架構、 聚合、 實體、 值對象、 領域服務等概念展開講解,重點描述了它們在應用中所扮演的角色以及使用限制。
除此之外, 作者也根據自身的經驗對一些常見的設計理論或設計模式進行了概括和總結, 如物件導向、 工作單元、Saga 分散式事務等。
儘管書中案例使用了Java 語言來表達, 但並不會影響讀者的閱讀體驗。
本書的受眾群體為軟體工程師、 系統架構師、 需求分析師或電腦相關專業的在校師生等。
 

目錄大綱

目錄
第一部沙場秋點兵-戰略佈局
第1章柳暗花明-困境與修身
1.1 困境
1.1.1 DDD的野望與尷尬
1.1.2 何以解憂
1.2 山重水復
1.2.1 軟體中的熵增
1.2.2 抑制熵增速率
1.3 修行
1.3.1 管理者的修行
1.3.2 軟體工程師的修行
總結
第2章比翼連枝-領域驅動設計與微服務
2.1 軟體革命-微服務的興起
2.2 更進一步-DDD的百尺竿頭
2.3 差異
2.4 對微服務的反思
2.5 DDD與微服務的秦晉之好
2.5.1 業務中台的概念
2.5.2 助力服務劃分
總結
第3章戰略劃小-領域與子域
3.1胸存丘壑
3.2 領域與子域
3.3 子域特性
3.3.1 分割領域
3.3.2 可變的
3.3.3 有界
3.3.4 可決策資源投入
3.3.5 業務高度內聚
3.4 解讀子域
3.4.1業務靈魂-核心域
3.4.2 業務基石-支撐域
3.4.3 復用之道-通用域
3.5 辨識子域的手段與策略
3.5.1 子域設計第一步-業務識別
3.5.2子域設計第二步-子域打標
3.5.3 子域設計第三步-子域精進
3.5.4 子域分割策略總結
總結
第4章確定疆域-限界上下文(BoundedContext)
4.1 通用語言
4.1.1 通用語言的作用
4.1.2 通用語言的特性
4.1.3 通用語言的使用方式
4.2 限界上下文的內涵
4.2.1 限界
4.2.2 上下文
4.2.3 限界上下文與子域
4.3 限界上下文的特性
4.3 .1 物理劃分
4.3.2 根據子域推導
4.3.3 限定邊界
4.3.4 承上啟下
4.3.5 具備技術性
4.4 限界上下文中的元素
4.4.1 領域模型
4.4.2 用例控制能力
4.4.3 資料存取能力
4.4 .4 表現能力
4.4.5 資料轉換
4.4.6 部署能力
4.4.7 交互支撐能力
4.5 限界上下文的來源
4.5.1 基於子域
4.5.2 基於非功能性需求
4.6 案例
4.7 限界上下文的粒度與規模
4.8 限界上下文間的通訊
4.8.1 限界上下文的整合方式
4.8.2 限界上下文映射案例
4.9 再談隔離
4.10 限界上下文中的業務模型
4.10.1 軟體建模
4.10.2 限界上下文與模型的整合
總結
第二部分知行合一-戰術實踐
第5章中流砥柱-系統架構(Architecture)
5.1 物件與服務
5.1.1 物件
5.1.2 服務
5.2 分層架構
5.2.1 經典三層架構
5.2.2 DDD四層架構
5.3 洋蔥架構與六角形架構
5.3.1 認識洋蔥架構
5.3.2 認識六角形架構
5.4 指令查詢責任分離(CQRS)
5.4.1 認識CQRS
5.4.2 CQRS的實現
5.5 事件驅動架構(EDA)
5.5.1 認識EDA
5.5.2 EDA案例
5.5.3 EDA的特色
5.6 事件溯源(EventSourcing)
5.7 事務與資料一致性
5.8 程式碼結構
5.8.1 組織專案
5.8.2 服務中的程式碼模型
5.8.3 實務
總結
第6章舉世無雙— —實體(Entity)
6.1 認識實體
6.1.1 貧血模型與充血模型
6.1.2 實體的識別碼
6.1.3 實體的比較
6.1.4 實體的特徵
6.2 實體的行為
6.2.1 責任主體
6.2.2 知識掌握程度
6.2.3 是否可重複使用
6.2.4 是否需要多對象協作
6.2.5 基於高內聚、低耦合原則
6.3 實體的構造函數
6.3.1 保障對象完整與合法
6.3.2 優先使用工廠
6.3.3 包含定制建構函數
6.4 實體設計實務
6.4.1 設計限制
6.4.2 實體存取
6.5 額外的禮物-物件間的關係
6.5.1 類別圖的作用
6.5.2 類別間的關係
6.5.3 類別圖的粒度
總結
第7章股肱之臣-值物件(ValueObject)
7.1 認識值物件
7.1.1 值物件的意義及作用
7.1.2 值物件範例
7.1.3 值物件的作用範圍
7.2 值物件的特徵
7.2.1 無識別符
7.2.2 修飾某物
7.2.3 構成某物
7.2.4 概念整體
7.2.5 不可變
7.2.6 無副作用
7.3 值物件的構造
7.4 值物件的存取
7.4.1 附加到實​​體表
7.4.2 單列存儲多值
7.4.3 單獨表
7.5 值物件案例
7.5.1 商品及價格策略
7.5.2 商品與評論
7.5.3 訂單與收貨地址
7.5.4 帳本與流水
7.5.5 角色與權限
7.6 額外的禮物-領域模型基礎類別庫
7.6.1 領域模型基類
7.6.2 領域模型驗證能力