【軟體架構篇】常見可擴充套件模式

sas???發表於2018-08-31

1、可擴充套件

為了實現一個需求,需要修改系統程式碼時,若修改程式碼對已存在的功能影響非常小,那麼說明原有系統的可擴充套件性高;若修改程式碼對已存在的功能影響非常大,那麼說明原有系統的可擴充套件性低。

設計一個系統時,需要考慮可擴充套件性,以當下次對系統進行修改時,減小對系統已有功能的影響程度。可擴充套件性需要在後續接到新需求時才能被檢驗。

設計可擴充套件時用的方法,萬變不離其中,一個字即拆,以此來實現高內聚,低耦合。

2、常見可擴充套件模式

根據不同的拆分方式,將得到不同的可擴充套件架構模式。
面向流程拆分:分層架構。
面向服務拆分:SOA和微服務。
面向功能拆分:微核心架構。

流程、服務、功能,根據範圍由大到小依次為流程>服務>功能。

3、分層架構

常見的分層架構有MVC,model層又分為業務邏輯層、資料層等。
使用場景:實現後端API的典型分層架構。

4、SOA

使用場景:對於一些傳統公司而言,公司內部有很多個系統,並且這些系統很少變動、使用時間比較長,系統開放介面的形式很不一樣。公司為了整合各個系統,通過ESB作為中介軟體負責各個系統的訊息轉換。

5、微服務

對於網際網路系統來說,如果繼續使用ESB,ESB本身也將成為系統瓶頸。網際網路系統採用去中心化的方式,讓各個服務之間相互呼叫,這樣帶來的一個副作用是各個服務之間的開放介面需要統一。

網際網路業務的典型特點有:使用者數量大、業務發展迅速。

6、微核心架構

一般比較複雜的單機應用可採用微核心架構,比如作業系統、Eclipse等。

相關文章