作為軟件工程師,為什么至少要學習基本的架構模式? 我相信有很多人回答了這個問題,但我會給你一些考慮的理由。 首先,如果您了解架構模式的基礎知識,那么您就更容易遵循架構師的要求。 其次,了解這些模式將有助于您在代碼中做出決策:例如,如果您的應用程序設計基于事件驅動的微服務,那么作為軟件工程師,您必須將您的代碼解耦為一個單獨的服務,如果您注意到日益增加的復雜性和現有服務中的邏輯責任。 Mark Richards 在書中描述了 5 種模式:
分層架構
事件驅動架構
微內核架構(或插件架構)
微服務架構
基于空間的架構(或云架構模式)
1.分層架構
它是單體應用程序最常見的架構。該模式背后的基本思想是將應用程序邏輯劃分為若干層,每一層都封裝了特定的角色。例如,持久層將負責您的應用程序與數據庫引擎的通信。
2.事件驅動架構
這種模式背后的想法是將應用程序邏輯解耦為異步接收和處理事件的單一用途事件處理組件。這種模式是流行的分布式異步架構模式之一,以高可擴展性和適應性著稱。
3. 微內核架構
Mikrokernel 架構,也稱為插件架構,是具有兩個主要組件的設計模式:核心系統和插件模塊(或擴展)。一個很好的例子是Web 瀏覽器(核心系統),您可以在其中安裝無窮無盡的擴展(或插件)。
4. 微服務架構
微服務架構由單獨部署的服務組成,理想情況下,每個服務都有單一的職責。這些服務相互獨立,如果一項服務失敗,其他服務將不會停止運行。
5. 基于空間的架構
基于空間的模式背后的主要思想是分布式共享內存,以緩解在數據庫級別經常發生的問題。假設通過使用內存數據處理大多數操作,我們可以避免數據庫中的額外操作,因此可能會從那里演變出任何未來的問題(例如,如果您的用戶活動數據實體已更改,您不需要更改一堆持久化的代碼并從數據庫中檢索該數據)。 基本方法是將應用程序分成處理單元(可以根據需要自動擴展和縮減),其中數據將在這些單元之間復制和處理,而無需對中央數據庫進行任何持久性(盡管將有本地存儲用于系統故障的場合)。
責任編輯:彭菁
-
數據庫
+關注
關注
7文章
3799瀏覽量
64396 -
代碼
+關注
關注
30文章
4788瀏覽量
68617 -
應用程序
+關注
關注
37文章
3268瀏覽量
57710
原文標題:幾個軟件架構模式
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論