Web 開發者晉級之道架構模式和領域驅動設計
王西友 著
- 出版商: 機械工業
- 出版日期: 2021-08-01
- 定價: $659
- 售價: 8.5 折 $560
- 語言: 簡體中文
- 頁數: 392
- 裝訂: 平裝
- ISBN: 7111688104
- ISBN-13: 9787111688105
-
相關分類:
Domain-Driven Design
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$534$507 -
$534$507 -
$330$314 -
$347使用 C# 開發搜索引擎, 2/e
-
$780$616 -
$505精通 Spring:Java Web 開發與 Spring Boot 高級功能 (Mastering Spring 5, 2/e)
-
$556SOD 框架企業級應用數據架構實戰
-
$347輕量級Java Web整合開發(第2版)——Spring+Spring Boot+MyB
-
$980$647 -
$1,200$948 -
$299$284 -
$314Java Web程序設計(慕課版 第2版)——基於SSM(Spring+Spring MVC+MyBatis)框架
-
$419$398 -
$980$774 -
$594$564 -
$764$719 -
$580$435 -
$880$695 -
$294$279 -
$620$484 -
$536IT項目管理(原書第9版)
-
$600$468 -
$880$660 -
$690$587 -
$500$395
相關主題
商品描述
《Web開發者晉級之道:架構、模式和領域驅動設計》系統介紹軟件的設計思想、架構和開發模式,
帶領讀者快速建立軟件開發的知識體系,另外還詳細介紹基於ASP.NET Core的項目案例開發,
幫助讀者全面掌握如何快速開發高效、穩定的Web應用程序。
《Web開發者晉級之道:架構、模式和領域驅動設計》共10章,分為2篇。
第1篇“軟件開發內功心法”,首先介紹軟件設計思想、軟件架構、面向對象編程的六大原則和設計模式等知識,
為軟件開發初學者晉級打好基礎,然後簡要介紹一個電商項目的概況和架構設計,為後續的項目開發實踐做好鋪墊。
第2篇“領域驅動設計落地”,首先介紹領域驅動設計的思想與方法,然後通過一個電商項目案例的開發實踐,
展現以領域模型為核心的Web應用程序的完整開發過程,包括基礎設施層的實現、應用程序層的實現和展示層的實現等,
後對MVC架構做詳細介紹,這些內容展現了高品質軟件開發的核心價值和麵向對象程序設計的思想價值。
《Web開發者晉級之道:架構、模式和領域驅動設計》理論結合實踐,講解深入淺出,
適合有一定C#語言基礎的Web開發人員閱讀,尤其適合想要建立軟件開發知識體係並提高開發水平的Web程序員閱讀。
另外,《Web開發者晉級之道:架構、模式和領域驅動設計》
還可以作為相關培訓機構的教材。
作者簡介
王西友
現供職於徐工集團,任主任設計師和特聘高級技術專家。
多年以來一直從事智能控制和信息化軟件的開發工作,在軟件架構、
設計模式和領域驅動設計方面有深厚的理論功底和豐富的開發經驗。
目錄大綱
前言
第1篇 軟件開發內功心法
第1章 如何開始一個軟件項目 2
1.1 軟件項目開發麵臨的挑戰 2
1.1.1 領域模型的創建 3
1.1.2 架構的選擇 4
1.1.3 軟件框架的使用 5
1.1.4 數據存儲的實現 6
1.2 小結 6
第2章 軟件如何解決問題 7
2.1 軟件的發展歷程 7
2.1.1 面向過程的編程 8
2.1.2 面向對象的編程 9
2.1.3 面向組件的編程 16
2.1.4 面向方面的編程 19
2.1.5 綜述 21
2.2 對象的意義 21
2.2.1 對象和類型 22
2.2.2 對象的創建和生命週期的控制 23
2.2.3 對象的依賴 26
2.3 組件 26
2.3.1 接口與實現分離 27
2.3.2 接口分解 30
2.3.3 接口的多重實現與繼承 33
2.3.4 接口與契約式編程 34
2.4 小結 35
第3章 軟件架構 36
3.1 軟件架構概述 36
3.1.1 軟件架構的定義 36
3.1.2 軟件架構風格和架構模式 38
3.1.3 4 1視圖 40
3.2 主流軟件架構簡介 41
3.2.1 分層架構 41
3.2.2 MVC架構 45
3.2.3 REST架構 47
3.2.4 微服務架構 52
3.3 小結 54
第4章 面向對象的設計模式和原則 55
4.1 重用 55
4.1.1 繼承重用 56
4.1.2 組合重用 60
4.1.3 模式重用 62
4.2 面向對象的設計原則 63
4.2.1 單一職責原則 63
4.2.2 開閉原則 65
4.2.3 里氏代換原則 67
4.2.4 依賴倒置原則 71
4.2.5 接口隔離原則 73
4.2.6 迪米特法則 75
4.3 設計模式 79
4.3.1 設計模式的定義 80
4.3.2 設計模式的分類和應用 80
4.3.3 如何使用設計模式 81
4.4 小結 81
第5章 項目概況與架構設計 83
5.1 iShopping項目 83
5.1.1 項目簡介 83
5.1.2 用Java還是.NET Core 84
5.1.3 集成開發環境 85
5.2 iShopping的架構設計 86
5.2.1 領域驅動設計和邏輯視圖 86
5.2.2 開發視圖 88
5.2.3 進程視圖 89
5.2.4 物理視圖 91
5.2.5 場景視圖 92
5.3 小結 93
第2篇 領域驅動設計落地
第6章 領域模型 96
6.1 領域驅動設計 96
6.2 領域對象的識別與創建 98
6.2.1 實體對象 99
6.2.2 實體對象的標識和替換 104
6.2.3 值對象 108
6.2.4 用值對象封裝複雜的邏輯 114
6.3 整體設計 124
6.3.1 領域的劃分 125
6.3.2 限界上下文 127
6.3.3 限界上下文的映射 128
6.4 聚合 142
6.4.1 聚合對象 142
6.4.2 使用聚合對象實現限界上下文 143
6.4.3 聚合對象之間的導航 151
6.4.4 聚合內部對象的實現和引用 156
6.5 領域服務對象 157
6.5.1 領域服務 158
6.5.2 領域服務和應用服務 160
6.5.3 領域服務與貧血模型 161
6.6 領域事件 163
6.6.1 領域事件簡介 164
6.6.2 領域事件的發布和訂閱 166
6.7 領域對象的生命週期 176
6.7.1 工廠和構建器 176
6.7.2 倉儲對象 179
6.8 小結 182
第7章 綜合運用領域模型 183
7.1 商品目錄上下文的實現 183
7.1.1 商品分類聚合的實現 184
7.1.2 商品聚合的實現 192
7.2 訂單上下文的實現 202
7.2.1 購物車聚合的實現 204
7.2.2 訂單聚合的實現 210
7.2.3 訂單優惠聚合的實現 224
7.2.4 訂單費用計算服務的實現 229
7.3 小結 232
第8章 基礎設施層的實現 233
8.1 基礎設施層的創建 233
8.2 數據存儲 234
8.2.1 數據庫設計範式 235
8.2.2 事務 238
8.2.3 NoSQL數據庫 240
8.3 對象關係映射 241
8.3.1 對象-數據庫阻抗失配 241
8.3.2 對象關係映射的困難 242
8.3.3 傳統的數據訪問技術ADO.NET 243
8.4 Entity Framework Core框架 247
8.4.1 Entity Framework Core的引用 247
8.4.2 Entity Framework Core簡介 249
8.4.3 實現自定義數據上下文 252
8.4.4 實現對象倉儲 270
8.5 MongoDB應用 280
8.5.1 MongoDB數據庫 281
8.5.2 使用MongoDB實現對象倉儲 283
8.6 RabbitMQ應用 287
8.6.1 RabbitMQ的安裝和配置 288
8.6.2 使用RabbitMQ實現事件總線 290
8.7 使用第三方WebAPI 297
8.7.1 WebAPI訪問技術 297
8.7.2 使用WebAPI實現運輸距離的計算 300
8.8 小結 303
第9章 應用程序層的實現 304
9.1 應用程序層簡介 304
9.1.1 應用程序層和應用服務 306
9.1.2 應用服務的接口形式 310
9.1.3 CQRS風格的應用服務 312
9.1.4 事件存儲 317
9.2 實現查詢的方法 319
9.2.1 對象的映射 319
9.2.2 查詢過濾器 321
9.2.3 數據代理 327
9.2.4 查詢門面 334
9.3 小結 341
第10章 展示層和MVC框架 342
10.1 ASP.NET Core MVC框架 342
10.1.1 路由 343
10.1.2 MVC簡介 346
10.1.3 控制器 349
10.1.4 控制器和領域模型 352
10.1.5 視圖和模型 354
10.1.6 OWIN和反向代理 358
10.2 ASP.NET Core MVC項目 361
10.2.1 搭建MVC 362
10.2.2 依賴注入容器 367
10.2.3 搭建前端開發框架 371
10.3 控制器和視圖的實現 372
10.3.1 控制器和視圖 373
10.3.2 視圖的表單提交 377
10.3.3 視圖與服務器的異步通信 379
10.4 小結 382