【軟體架構篇】常見可擴充套件模式
1、可擴充套件
為了實現一個需求,需要修改系統程式碼時,若修改程式碼對已存在的功能影響非常小,那麼說明原有系統的可擴充套件性高;若修改程式碼對已存在的功能影響非常大,那麼說明原有系統的可擴充套件性低。
設計一個系統時,需要考慮可擴充套件性,以當下次對系統進行修改時,減小對系統已有功能的影響程度。可擴充套件性需要在後續接到新需求時才能被檢驗。
設計可擴充套件時用的方法,萬變不離其中,一個字即拆,以此來實現高內聚,低耦合。
2、常見可擴充套件模式
根據不同的拆分方式,將得到不同的可擴充套件架構模式。
面向流程拆分:分層架構。
面向服務拆分:SOA和微服務。
面向功能拆分:微核心架構。
流程、服務、功能,根據範圍由大到小依次為流程>服務>功能。
3、分層架構
常見的分層架構有MVC,model層又分為業務邏輯層、資料層等。
使用場景:實現後端API的典型分層架構。
4、SOA
使用場景:對於一些傳統公司而言,公司內部有很多個系統,並且這些系統很少變動、使用時間比較長,系統開放介面的形式很不一樣。公司為了整合各個系統,通過ESB作為中介軟體負責各個系統的訊息轉換。
5、微服務
對於網際網路系統來說,如果繼續使用ESB,ESB本身也將成為系統瓶頸。網際網路系統採用去中心化的方式,讓各個服務之間相互呼叫,這樣帶來的一個副作用是各個服務之間的開放介面需要統一。
網際網路業務的典型特點有:使用者數量大、業務發展迅速。
6、微核心架構
一般比較複雜的單機應用可採用微核心架構,比如作業系統、Eclipse等。
相關文章
- 10種常見的軟體架構模式架構模式
- 架構設計的立方體擴充套件架構套件
- 谷歌的三大可擴充套件核心架構谷歌套件架構
- 簡要剖析:可擴充套件的微服務架構套件微服務架構
- 可擴充套件Web架構與分散式系統套件Web架構分散式
- YouTube的架構擴充套件架構套件
- 擴充套件篇套件
- 常見的五種軟體架構架構
- 大型網站技術架構(七)--網站的可擴充套件性架構網站架構套件
- Django與微服務架構:構建可擴充套件的Web應用Django微服務架構套件Web
- 微服務架構擴充套件FreeStyle微服務架構套件
- 可擴充套件性套件
- 軟體可擴充套件性:來自星巴克的經驗套件
- 如何使用Zebee構建高度可擴充套件的分散式工作流中介軟體?套件分散式
- 構建可擴充套件的有態服務套件
- 構建可擴充套件的應用(一) (轉)套件
- 微服務架構:自動擴充套件簡介微服務架構套件
- 構建高可用性、高效能和可擴充套件的Zabbix Server架構套件Server架構
- Kotlin 常見內聯擴充套件函式的使用Kotlin套件函式
- 編寫可擴充套件程式套件
- 讀構建可擴充套件分散式系統:方法與實踐09可擴充套件資料庫基礎套件分散式資料庫
- 使用 Postgres 的全文搜尋構建可擴充套件的事件驅動搜尋架構套件事件架構
- 讀構建可擴充套件分散式系統:方法與實踐15可擴充套件系統的基本要素套件分散式
- Lotus WCM6.1 API 實現常見擴充套件場景API套件
- mixi.jp:使用開源軟體搭建的可擴充套件SNS網站套件網站
- 可擴充套件的搜尋元件套件元件
- 可擴充套件性筆記一套件筆記
- 使用 Python 構建可擴充套件的社交媒體情感分析服務Python套件
- Tokenformer:基於引數標記化的高效可擴充套件Transformer架構ORM套件架構
- 如何構建可控,可靠,可擴充套件的 PWA 應用套件
- Chrome瀏覽器擴充套件開發系列之三:Google Chrome瀏覽器擴充套件的架構Chrome瀏覽器套件Go架構
- 12c 可擴充套件的字元型別MAX_STRING_SIZE與常見錯誤套件字元型別
- 軟體架構模式之微服務架構架構模式微服務
- 開源 [輪子] Laravel 專案架構擴充套件包Laravel架構套件
- 在亞馬遜AWS上擴充套件微服務架構(英文PPT)亞馬遜套件微服務架構
- MySQL 高擴充套件架構構建百萬線上系統實踐MySql套件架構
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- Spring常見擴充總結Spring