課程目錄:軟件設計原則培訓
4401 人關注
(78637/99817)
課程大綱:

  軟件設計原則培訓

 

 

 

軟件設計原則、思路或佳實踐


一、 企業級架構設計概述

1. 認識分層架構

2. 分層架構的演化

3. 領域驅動架構的演進

4. 界限上下文與架構

5. 六邊形架構

6. 端口與適配器

7. 整潔架構

8. CQRS架構

9. 在CQRS中處理具有終一致性的查詢模型

10.事件溯源 EventSouring

11.使用樂觀鎖處理并發更新

12.事件溯源和發布事件

13.冪等方式處理消息

14.使用快照提升性能

15.管道與過濾器

16.SAGA(消息驅動事務)

17.協同式與編排式

18.SAGA下實現隔離

軟件設計中的核心原則 SOLID


二、單一職責原則

1. 次時代租車服務終端 (ARCS)的初步設計

2. 用例 (UseCase) 的作用 – 劃分邊界及概覽

3. SRP的設計誤區

4. 重構至 SRP 的方法1:提取類

5. 重構至 SRP 的方法2:Proxy模式

6. 前端代碼 SRP重構:投票組件

7. 過程性代碼的 SRP

違反直覺的真相:性能優化的步驟


三、開放封閉原則

1. 代碼中的接線板是什么?

2. 編程價值觀 – 溝通,簡單,靈活

3. 如何做到對擴展開放,對修改封閉

4. 次時代租車服務終端 (ARCS)的促銷需求

5. 笨拙的促銷實現

6. 如何不修改代碼而改變它的行為

7. 簡單的 OCP實現 – 策略模式

8. 前端代碼重構:拆分復雜表達式

敏捷開發的精髓 – 只被第一顆子彈擊中


四、里氏替換原則

1. 什么才是好的繼承關系

2. 子類為什么要能透明的替換基類

3. 次時代租車服務終端 (ARCS)的新需求 – 電動轎車費用計算

4. 白盒復用 還是 黑盒復用

5. IS-A的精髓:針對屬性還是針對行為

6. 契約式設計繼承體系

7. 重構方法:提升為兄弟類

8. 前端代碼重構:抽取函數

9. 如何才能讓 次時代租車服務終端 (ARCS)的代碼符合 LSP

這樣做我們可能會引入什么新的問題?


五、接口隔離原則

1. 接口“變胖”的問題 – 接口污染

2. 佳能一體機的遺留接口問題

3. 如何實現接口分離 – 適配器模式

4. 類適配器 – 多繼承

5. 對象適配器 – 委托

6. 使用單元測試來發現問題

7. 前端代碼重構:使用模板方法重新組織邏輯

8. 次時代租車服務終端 (ARCS)在接口劃分上的問題

9. 如何簡化復雜的邏輯

10. 如何使用模板方法分離抽象與具體

案例:ATM機接口設計的演化


六、依賴倒置原則

1. 結構化設計理念的問題

2. 對象化設計理念

3. 依賴倒置到底倒置了什么

4. 如何分離關注點

5. DI-依賴注入解決的問題:講對象的創建與使用分離

案例:消息隊列設計的演化

領域層的設計與實踐


七、實體 – 數據容器還是行為載體

6. 貧血模型

7. 如何避免貧血,實體與領域服務之間的分寸

8. 唯一標識

9. 委派標識

10.案例:實現實體層超類型(Layer Supertype)

11.實戰 -任務分配執行系統 實體行為歸屬甄別


八、值對象 – 性能提升小幫手

1. 什么是值對象

2. 值對象的特征

3. 為什么值對象這么容易被忽略

4. 案例:地址建模與值對象

5. 案例:實現值對象層超類型


九、聚合 – 比類更高一層的封裝

1. 聚合設計原則

2. 聚合設計的過程

3. 聚合的一致性邊界

4. 一個事務中只處理一個聚合

5. UML 中的聚合 與 DDD 中的聚合

6. 聚合內實現事務一致性

7. 聚合外實現終一致性

8. 案例:更新訂單狀態與庫存扣減 Version 1.0

9. 案例:更新訂單狀態與庫存扣減 Version 2.0

10.聚合設計的注意點

服務層的設計與實踐


十、微服務的入口 - 應用服務

1. 用例 (Use Case) 與應用服務

2. 微服務的網關 與 應用服務 之間的關系

3. 應用服務中的 編排,轉換,驗證,轉發

4. 工作單元 (Unit of Work)

5. 數據傳輸對象 (Data Transfer Object)

6. 事務腳本 (Transaction Script) 與領域模型

7. 依賴注入在應用服務中的使用

8. 案例:實現應用服務

9. 應用服務的關注點

10.實戰 -任務分配執行系統 應用層構建


十一、領域服務 – 不是實體本身的行為都歸它

1. 領域服務的冪等性

2. 案例:實現領域服務

3. 實戰 -任務分配執行系統 領域服務層構建


十二、資源庫 – 聚合的起點與終點

1. 集合特性

2. 資源庫與數據訪問層的區別

3. 資源庫的誤解

4. 資源庫的實現要點

5. 案例:資源庫的實現

6. 領域模型 VS數據模型

7. 案例:泛型資源庫

實戰 -任務分配執行系統 持久化

基于事件驅動的架構設計


十三、領域事件 – 保持終一致性的信使

1. 領域事件是領域建模中極其重要的部分

2. 事務一致性,高并發下的窘境

3. 終一致性,妥協帶來高擴展性

4. 原則:一個事務中只對一個聚合進行修改

5. 案例:實現抽象事件源,發布事件源

6. 案例:實現抽象事件處理

7. 案例:實現領域事件的發布與訂閱

8. 實戰 -任務分配執行系統 任務分配領域邏輯


十四、微服務中基于事件的系統架構

1. 微服務之間如何穩健的發布與消費事件

2. 如何保證發布事件的原子性

3. 使用事件表發布事件

4. 案例:如何實現事件感知聚合根

5. 案例:如何實現事件感知資源庫

6. 如何通過 AOP 進行通用的事件處理


十五、微服務形式下的CQRS

1. DDD中的典型寫操作

2. 基于數據模型的讀操作

3. 基于領域模型的讀操作

4. 讀寫分離模型

5. 案例:電商系統中的讀寫分離場景

6. 單進程單實體 + 共享存儲/共享模型:Inventory詳情查詢

7. 單進程單實體 + 共享存儲/分離模型:Product摘要查詢

8. 單進程跨實體 + 分離存儲/分離模型:Product詳情查詢(包含Category信息)

9. 跨進程跨實體 + 分離存儲/分離模型:Order詳情查詢(包含Product信息)

主站蜘蛛池模板: 狠狠做五月深爱婷婷天天综合| 亚洲精品天天影视综合网| 国产综合在线观看| 色成年激情久久综合| 国产欧美精品一区二区色综合| 中文网丁香综合网| 99久久国产综合精品网成人影院| 97久久天天综合色天天综合色hd | 激情综合婷婷丁香五月| 狠狠色伊人久久精品综合网| 色综合久久中文色婷婷| 99热婷婷国产精品综合| 天天综合久久一二三区| 狠狠色噜狠狠狠狠色综合久| 麻豆精品久久精品色综合 | 国产精品综合久成人 | 成人综合久久精品色婷婷| 狠狠色丁香久久综合婷婷| 亚洲熟女乱综合一区二区| 伊人成年综合网| 国产激情电影综合在线看 | 亚洲VA综合VA国产产VA中| 国产综合色产在线精品| 国产在线五月综合婷婷| 激情五月综合综合久久69| 久久久久亚洲av综合波多野结衣| 色婷婷综合久久久久中文一区二区 | 日日AV色欲香天天综合网| 国产香蕉尹人综合在线| 国产日韩欧美综合| 狠狠色丁香久久婷婷综合五月 | 国产精品无码久久综合| 欧洲 亚洲 国产图片综合| 国产欧美日韩综合一区在线播放| 国产精品亚洲综合久久| 亚洲图片综合区| 一本一本久久aa综合精品| 久久综合综合久久狠狠狠97色88| 色综合综合色综合色综合| 精品综合久久久久久97超人| 丁香五月亚洲综合深深爱|