微服務下的領域驅動設計

《微服務下的領域驅動設計》是2024年北京航天航空大學出版社出版的圖書。

基本介紹

  • 中文名:微服務下的領域驅動設計
  • 作者:孫連山
  • 出版時間:2024年1月1日
  • 出版社:北京航天航空大學出版社
  • ISBN:9787512442764
內容簡介,圖書目錄,

內容簡介

本書以實戰理念為主旨, 對領域驅動設計的核心內容進行了全面解讀。 書籍主要由兩部分內容構成: 戰略與戰術。 第一部分以子域和限界為核心, 並通過案例的形式介紹了如何在現實中將其進行實踐的知識; 第二部分則圍繞套用架構、 聚合、 實體、 值對象、 領域服務等概念展開講解, 重點描述了它們在套用中所充當的角色以及使用限制。 除此之外, 作者也根據自身的經驗對一些常見的設計理論或設計模式進行了概括和總結, 如面向對象、 工作單元、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 有 界
1微服務下的領域驅動設計
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 章 確定疆域———限界上下文(Bounded Context)
4.1 通用語言
4.1 .1 通用語言的作用
4.1 .2 通用語言的特性
4.1 .3 通用語言的使用方式
4.2 限界上下文的內涵 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 事件溯源(Event Sourcing)
5 .7 事務與數據一致性
5 .8 代碼結構
5 .8.1 組織項目
5 .8.2 服務中的代碼模型
3微服務下的領域驅動設計
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 章 股肱之臣———值對象(Value Object)
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 領域模型驗證能力
總 結
第8 章 獨立自主———聚合(Aggregate)
8.1 認識聚合
8.1 .1 使用聚合的原因
8.1 .2 聚合示例
8.2 聚合的規模
8.2.1 事務規模
8.2.2 業務一致性範圍
8.2.3 通用語言參考
8.3 聚合的特徵
8.3 .1 形成工作單元
8.3 .2 有唯一對外面
8.3 .3 知識聚合
8.3 .4 基本事務單元
8.3 .5 不可分割
8.3 .6 通過標識符集成
8.4 聚合的事務處理
8.4.1 全局事務
8.4.2 分散式事務
5微服務下的領域驅動設計
8.5 額外的禮物———簡單Saga 實現
8.5 .1 編排式Saga 設計思想
8.5 .2 代碼實現
總 結
第9 章 化土為玉———工廠(Factory)
9 .1 使用工廠的時機
9 .2 工廠的責任
9 .2.1 簡化構建領域模型
9 .2.2 保障對象合法
9 .2.3 明確對象責任
9 .2.4 避免知識壟斷
9 .3 工廠的實現形式
9 .3 .1 領域模型包含工廠方法
9 .3 .2 聚合子類作為工廠
9 .3 .3 領域服務作為工廠
9 .4 工廠實踐
9 .5 使用工廠的注意事項
9 .5 .1 釐清使用約束
9 .5 .2 約束失敗處理方式
9 .5 .3 注意替代方案
9 .5 .4 明確構建目標
9 .5 .5 不處理業務
9 .5 .6 保持簡單
總 結
第10 章 浴火重生———資源庫 (Repository)
10.1 認識資源庫
10.2 資源庫的設計
10.2.1 接口與實現分開
10.2.2 考慮輸入輸出限制
10.2.3 明確使用目的
10.2.4 不包含業務
10.2.5 禁止持久化
10.2.6 依據業務定義
10.2.7 保持簡單
10.3 資源庫實現
10.4 如何處理層級關係
10.5 使用資源庫時的注意事項
10.5 .1 數據級聯
10.5 .2 多種持久化方式共存
10.5 .3 性能處理
10.6 額外的禮物———工作單元(Unit of Work)
10.6 .1 如何使用本地事務
10.6 .2 工作單元簡介
10.6 .3 工作單元的實現
總 結
第11 章 運籌帷幄———領域服務(Domain Service)
11 .1 認識領域服務
11 .1 .1 訂單實體擔負的責任過重
11 .1 .2 代碼不夠規範
11 .2 領域服務的作用
11 .2.1 執行業務邏輯
11 .2.2 對象轉換
11 .2.3 處理對象協作
11 .2.4 減少對象耦合
11 .2.5 控制業務走向
11 .3 領域服務的使用模式
11 .3 .1 實體引用領域服務
11 .3 .2 嵌套使用領域服務
11 .3 .3 套用服務引用領域服務
11 .4 領域服務的特性
11 .4.1 無狀態
11 .4.2 參數多為實體
11 .4.3 只依賴領域模型
11 .4.4 反映通用語言
11 .4.5 承擔業務指揮
11 .4.6 返回值有限制
11 .5 額外的禮物———微服務中的面向對象編程
11 .5 .1 如何進行分散式環境下的面向對象編程
11 .5 .2 對領域服務的反思
總 結
7微服務下的領域驅動設計
第12 章 承前啟後———套用服務(Application Service)
12.1 認識套用服務
12.1 .1 套用服務對命令型業務的支撐
12.1 .2 套用服務對查詢型業務的支撐
12.1 .3 巨觀上的套用服務
12.2 套用服務的使用限制
12.2.1 關注輸入限制類型
12.2.2 遵守輸出類型約束
12.2.3 使用依賴注入
12.2.4 無需接口
12.2.5 參數必驗
12.2.6 依據業務進行命名
12.2.7 關注異常處理
12.3 額外的禮物———套用服務接口參數驗證
總 結
致 謝
參考文獻

相關詞條

熱門詞條

聯絡我們