領域驅動設計。Net實踐

《領域驅動設計.Net實踐》是2024年清華大學出版社出版的圖書,作者是甄鐳。

基本介紹

  • 中文名:領域驅動設計.Net實踐
  • 作者:甄鐳
  • 出版時間:2024年1月1日
  • 出版社:清華大學出版社
  • ISBN:9787302649359 
  • 定價:138 元
內容簡介,圖書目錄,

內容簡介

《領域驅動設計.Net實踐》介紹領域驅動設計的基本概念和在.Net環境下使用領域驅動設計開發套用軟體的基本方法。全書分為3個部分:第1部分(第1~6章)介紹領域模型和如何創建與驗證領域模型;第2部分(第7~16章)介紹與領域驅動設計相關的.Net技術;第3部分(第17~26章)介紹如何以領域模型為核心構造各種類型的套用系統,並講解項目的升級和演化方法。為了幫助讀者更好地理解和套用領域驅動設計,本書選取詩詞遊戲項目作為示例,貫穿全書的3個部分,引導讀者從零開始構建該項目,最終完成一個前後端分離的單頁面套用和基於微服務架構的套用。《領域驅動設計.Net實踐》圍繞示例項目開發,介紹使用行為驅動開發輔助領域模型驗證、在開發中進行持續集成、原始碼管理和程式包發布等技術,還介紹使用成熟的DDD技術框架進行項目開發的優缺點,以及系統提升與持續改進過程中需要注意的問題。

圖書目錄

第1部分 創建領域模型
第1章 領域驅動設計的概念 2
1.1 軟體的複雜性 2
1.2 領域驅動設計簡介 3
1.3 領域驅動設計使用中的難點 5
1.4 學習和使用領域驅動設計的一些體會 9
1.5 本書概況 11
1.6 本章小結 13
第2章 從零開始構建詩詞遊戲 14
2.1 需求概述 14
2.2 領域、子域與限界上下文 15
2.3 限界上下文的初步確定 16
2.4 限界上下文映射 19
2.5 詩詞遊戲上下文的通用語言 22
2.6 創建第一個版本 23
2.7 本章小結 27
第3章 理解領域模型 28
3.1 領域模型概述 28
3.2 實體 28
3.3 值對象 38
3.4 聚合和聚合根 42
3.5 存儲庫 43
3.6 領域事件 48
3.7 重構項目框架 57
3.8 完善詩詞服務 58
3.9 本章小結 62
第4章 領域服務與套用服務 63
4.1 第一個領域服務 63
4.2 對遊戲進行最佳化 65
4.3 領域服務的引入 69
4.4 套用服務 72
4.5 領域服務與套用服務的區別 83
4.6 避免濫用領域服務 84
4.7 本章小結 84
第5章 領域模型的驗證與演化 85
5.1 領域模型構建過程回顧 85
5.2 領域模型設計需要注意的幾個問題 86
5.3 使用測試框架創建驗證領域模型的測試用例 87
5.4 使用行為驅動設計工具SpecFlow驗證領域模型 93
5.5 創建控制台套用驗證領域模型 98
5.6 領域模型發布 98
5.7 領域模型的演化與持續集成 102
5.8 本章小結 103
第6章 創建基於控制台的人機遊戲 104
6.1 已完成工作回顧 104
6.2 人機遊戲說明 105
6.3 系統結構 105
6.4 創建套用層 106
6.5 模擬機器人作答 110
6.6 編寫客戶端 114
6.7 需要解決的問題 118
6.8 本章小結 121
第2部分 DDD .Net工具箱
第7章 DDD .Net相關技術概述 124
7.1 .Net簡介 124
7.2 .Net功能 125
7.3 與領域驅動設計實現相關的技術框架 134
7.4 本章小結 136
第8章 依賴倒置原則、控制反轉與DDD架構 137
8.1 依賴倒置原則 137
8.2 控制反轉 144
8.3 架構結構的轉變 146
8.4 本章小結 148
第9章 工廠與依賴注入容器 149
9.1 工廠 149
9.2 依賴注入容器 151
9.3 .Net內置的依賴注入容器 153
9.4 依賴注入容器的使用 156
9.5 使用第三方DI容器滿足高級需求 159
9.6 本章小結 163
第10章 基於關係資料庫的存儲庫實現 164
10.1 EF Core的基本功能 164
10.2 使用EF Core實現存儲庫 167
10.3 EF Core的深入套用 173
10.4 在控制台套用中使用新的存儲庫 184
10.5 使用其他資料庫訪問框架實現存儲庫 185
10.6 本章小結 187
第11章 存儲庫與NoSQL資料庫 188
11.1 NoSQL資料庫概述 188
11.2 文檔資料庫MongoDB概述 189
11.3 創建面向MongoDB的存儲庫 192
11.4 聚合根在MongoDB中存儲與在關係資料庫中存儲的比較 202
11.5 本章小結 202
第12章 認證 203
12.1 基本概念 203
12.2 Asp.Net Core Identity 204
12.3 基於OpenId Connect的認證服務 214
12.4 在實際項目中使用認證服務 222
12.5 本章小結 225
第13章 領域事件實現 226
13.1 領域事件的工作過程 226
13.2 觀察者模式、中介者模式與訂閱/發布模式 229
13.3 使用MediatR實現領域事件發布 233
13.4 外部事件發布與訊息中間件 240
13.5 本章小結 246
第14章 套用層開發 247
14.1 套用層概述 247
14.2 套用層創建示例 249
14.3 創建套用層的Web API 257
14.4 引入工作單元 263
14.5 本章小結 272
第15章 使用Web API和gRPC實現限界上下文集成 273
15.1 直接訪問詩詞服務資料庫 273
15.2 使用Web API實現上下文集成 277
15.3 使用gRPC實現限界上下文集成 284
15.4 本章小結 298
第16章 使用訊息實現限界上下文集成 299
16.1 限界上下文集成方案 299
16.2 使用RabbitMQ實現限界上下文集成 304
16.3 使用Kafka實現限界上下文集成 314
16.4 本章小結 318
第3部分 構建以領域模型為核心的套用
第17章 “戰略設計”與架構選擇 320
17.1 從業務出發規劃項目架構 320
17.2 示例項目的“戰略設計” 323
17.3 與DDD相關的架構類型 324
17.4 使用架構描述、設計套用系統 327
17.5 架構模型的總結 336
17.6 本章小結 337
第18章 構建Web單體套用 338
18.1 單體套用概述 338
18.2 需求細化 338
18.3 系統架構 340
18.4 套用層 341
18.5 使用SignalR創建實時服務 344
18.6 裝配依賴注入服務 353
18.7 運行效果和待解決的問題 354
18.8 本章小結 357
第19章 構建遊戲服務 358
19.1 需求分析 358
19.2 項目搭建 360
19.3 編寫服務層 360
19.4 SignalR Hub的實現 365
19.5 定時器的引入 371
19.6 安全認證 374
19.7 使用依賴注入服務進行裝配 377
19.8 本章小結 378
第20章 單頁面客戶端 379
20.1 需求概述 379
20.2 技術方案 380
20.3 前端項目構建 383
20.4 互動設計 393
20.4.1 互動設計原則 393
20.4.2 詩詞遊戲的互動設計 394
20.4.3 運行效果 395
20.5 本章小結 398
第21章 使用.Net構建多種類型客戶端 399
21.1 概述 399
21.2 認證 400
21.3 Web API的訪問 412
21.4 SignalR的訪問 415
21.5 客戶端互動模式與套用服務 420
21.6 本章小結 420
第22章 微服務 421
22.1 微服務簡介 421
22.2 微服務相關的技術 423
22.3 使用微服務架構的詩詞遊戲 426
22.4 容器化部署 437
22.5 持續集成 443
22.5.1 持續集成簡介 443
22.5.2 手工集成過程 443
22.5.3 使用Jenkins完成自動集成 445
22.6 本章小結 447
第23章 詩詞服務數據維護——非DDD技術的限界上下文 448
23.1 數據驅動開發簡介 448
23.2 詩詞服務數據維護的開發 449
23.3 數據驅動開發與DDD的比較 453
23.4 本章小結 455
第24章 遊戲管理上下文的實現與CQS模式 456
24.1 遊戲管理部分的設計 456
24.2 遊戲管理部分的領域模型 457
24.3 查詢部分設計 462
24.4 遊戲管理服務設計 469
24.5 遊戲管理客戶端設計 472
24.6 CQRS簡介 473
24.7 本章小結 474
第25章 使用成熟的DDD技術框架 475
25.1 ABP和ABP vNext 475
25.2 使用ABP vNext開發項目 476
25.3 使用輔助工具進行開發 478
25.4 使用技術框架開發的優勢和代價 479
25.5 如何使用技術框架 480
25.6 本章小結 480
第26章 系統提升與持續改進 481
26.1 模型對需求變化的適應性 481
26.2 軟體升級時模型的修改 484
26.3 使用語音輸入對系統的影響 488
26.4 架構的持續改進 488
26.5 本章小結 491
後記 492
附錄A 本書使用的開發工具、開發環境介紹 494
附錄B 參考文獻 509
附錄C 本書代碼說明 511

相關詞條

熱門詞條

聯絡我們