架構(gòu)師修煉之道-讀書筆記-第七八章
七、架構(gòu)模式
架構(gòu)模式是針對特定問題的可復(fù)用解決方案,通過特定的結(jié)構(gòu)組合提升某方面的質(zhì)量屬性。
常見的架構(gòu)模式
1、分層模式
一般分為展示層、業(yè)務(wù)層和數(shù)據(jù)層。
元素:層 一組功能內(nèi)聚的模塊
關(guān)系:允許使用 哪些層可以使用其他層的模塊
使用規(guī)則:一般來說上層允許使用下層,反之不成立。上層一般使用其直接下層。
優(yōu)勢:可運(yùn)維性、可移植性、可復(fù)用性、可測試性、可修改性都比較強(qiáng)
劣勢:每層都引入了額外的抽象,增加了復(fù)雜度,可能影響性能。
2、端口適配器模式
隔離了核心業(yè)務(wù)邏輯,確??梢栽诙鄠€(gè)環(huán)境下使用
3、管道過濾器模式
每個(gè)組件都是一個(gè)過濾器,處理數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)操作。上一個(gè)過濾器的輸出是下一個(gè)過濾器的輸入。
數(shù)據(jù)通過管道進(jìn)行傳輸
4、面向服務(wù)架構(gòu)模式
用獨(dú)立的組件提供特定功能的服務(wù),運(yùn)行時(shí)整合在一起,決定了系統(tǒng)的行為。
需要提供一個(gè)服務(wù)注冊表,用來進(jìn)行服務(wù)注冊。方便服務(wù)之間查找
5、發(fā)布訂閱模式
分為消費(fèi)者和生產(chǎn)者以及事件總線。生產(chǎn)者發(fā)布事件到事件總線。消費(fèi)者訂閱事件,事件總線推送事件。
6、共享數(shù)據(jù)模式
多個(gè)組件通過公用數(shù)據(jù)庫訪問數(shù)據(jù)
7、多層模式
8、能力中心模式
9、開源貢獻(xiàn)模式
10、大泥球模式 即沒有模式
總結(jié):常用的是分層模式。如果業(yè)務(wù)邏輯單一,但是存在多個(gè)不同格式的輸入,可以考慮使用端口適配器模式。
如果業(yè)務(wù)邏輯主要是數(shù)據(jù)轉(zhuǎn)換和處理,并且前后存在依賴,即數(shù)據(jù)驅(qū)動業(yè)務(wù)。可以考慮管道過濾器模式。
如果業(yè)務(wù)繁多,業(yè)務(wù)之間關(guān)系不強(qiáng)。可以考慮面向服務(wù)架構(gòu)模式。
如果業(yè)務(wù)更關(guān)注某些事件的觸發(fā),即事件驅(qū)動的業(yè)務(wù)。那么考慮使用發(fā)布訂閱模式
八、建立模型、化繁為簡
協(xié)作和抽象
協(xié)作 與他人合作 用大規(guī)模并行工作解決問題
抽象 建立抽象概念來壓縮表示大量信息。
常見元模型:定義概念 即元素和關(guān)系,然后建立概念使用規(guī)則
分離概念的過程成為好奇心循環(huán),總是從提問開始。提問是檢測的手段
保持一致性,對相似的概念進(jìn)行合并,對同名不同義的概念更名