Web 開發者晉級之道架構模式和領域驅動設計

王西友 著

  • 出版商: 機械工業
  • 出版日期: 2021-08-01
  • 定價: $659
  • 售價: 8.5$560
  • 語言: 簡體中文
  • 頁數: 392
  • 裝訂: 平裝
  • ISBN: 7111688104
  • ISBN-13: 9787111688105
  • 相關分類: Domain-Driven Design
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

《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