《實現(xiàn)領(lǐng)域驅(qū)動設(shè)計》拆書稿 - 第4章 架構(gòu)

image.png

第4章:架構(gòu)

拆書稿

一、架構(gòu)模式與架構(gòu)風(fēng)格

分層

  • 定義說明

將領(lǐng)域模型和業(yè)務(wù)邏輯分離出來,并減少對基礎(chǔ)設(shè)施、用戶界面甚至應(yīng)用層的依賴,因為他們不屬于業(yè)務(wù)邏輯。每層都應(yīng)該具有良好的內(nèi)聚性,并且只依賴于比其自身更低的層。

  • 一個典型的傳統(tǒng)分層架構(gòu)

用戶接口層
應(yīng)用層
領(lǐng)域?qū)?br> 基礎(chǔ)設(shè)施層

  • 依賴倒置原則

定義:
高層模塊不應(yīng)該依賴于低層模塊,兩者都應(yīng)該依賴于抽象。抽象不應(yīng)該依賴于細節(jié),細節(jié)應(yīng)該依賴于抽象。

六邊形架構(gòu)

  • 定義說明

該架構(gòu)中存在兩個區(qū)域,分別是"外部區(qū)域"和"內(nèi)部區(qū)域"。

  • 外部區(qū)域:不同的客戶均可以提交輸入;
  • 內(nèi)部區(qū)域:用于獲取持久化數(shù)據(jù),并對程序輸出進行存儲(數(shù)據(jù)庫),或者在中途將輸出轉(zhuǎn)發(fā)到另外的地方(消息);
    外部與內(nèi)部之間通過適配器對輸入轉(zhuǎn)化,每個客戶端都有自己的適配器。
  • 注意點

根據(jù)用例來設(shè)計應(yīng)用程序,而不是根據(jù)需要支持的客戶數(shù)目來設(shè)計。

面向服務(wù)架構(gòu)(SOA)

服務(wù)設(shè)計原則
  1. 服務(wù)契約

通過契約文檔,服務(wù)闡述自身的目的與功能

  1. 松耦合

服務(wù)將依賴關(guān)系最小化

  1. 服務(wù)抽象

服務(wù)只發(fā)布契約,而向客戶隱藏內(nèi)部邏輯

  1. 服務(wù)重用性

一種服務(wù)可以被其他服務(wù)所重用

  1. 服務(wù)自治性

服務(wù)自行控制環(huán)境與資源以保持獨立性,這有助于保持服務(wù)的一致性和可靠性

  1. 服務(wù)無狀態(tài)性

服務(wù)負責(zé)消費方的狀態(tài)管理,這不能與服務(wù)的自治性發(fā)生沖突

  1. 服務(wù)可發(fā)現(xiàn)性

客戶可以通過服務(wù)元數(shù)據(jù)來查找服務(wù)和理解服務(wù)

  1. 服務(wù)組合性

一種服務(wù)可以由其他的服務(wù)組合而成,而不管其他服務(wù)的大小和復(fù)雜性如何

SOA精神所在
  • 業(yè)務(wù)價值高于技術(shù)策略
  • 戰(zhàn)略目標(biāo)高于項目利益

RESTful

資源、無狀態(tài)通信、自描述功能、封裝行為

CQRS - 命令和查詢職責(zé)分離

事件驅(qū)動架構(gòu)

管道和過濾器

讀后思考

其實首先要改變的是我們平時開發(fā)的思維模式

編碼時,通常用兩種工作流程:

  • 自底向上

先設(shè)計數(shù)據(jù)模型,比如關(guān)系型數(shù)據(jù)庫的表結(jié)構(gòu),再實現(xiàn)業(yè)務(wù)邏輯。在平時開發(fā)同學(xué)拿到開發(fā)需求后,開始的第一件事情就是:"讓我先把數(shù)據(jù)庫表字段設(shè)計出來吧"。這基本就是大多數(shù)開發(fā)同學(xué)在設(shè)計階段做的事情了。這種方式就是將關(guān)注點優(yōu)先放在了技術(shù)性的數(shù)據(jù)模型上了,而不是代表業(yè)務(wù)的領(lǐng)域模型。

  • 自頂向下

拿到業(yè)務(wù)需求,先和客戶方確定好請求數(shù)據(jù)格式,設(shè)計好請求RESTFUL URL,在實現(xiàn)Controller和service,然后在實現(xiàn)領(lǐng)域模型,最后在來考慮數(shù)據(jù)庫表持久層的設(shè)計。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容