作為軟件工程師,為什么至少要學(xué)習(xí)基本的架構(gòu)模式? 我相信有很多人回答了這個問題,但我會給你一些考慮的理由。 首先,如果您了解架構(gòu)模式的基礎(chǔ)知識,那么您就更容易遵循架構(gòu)師的要求。 其次,了解這些模式將有助于您在代碼中做出決策:例如,如果您的應(yīng)用程序設(shè)計基于事件驅(qū)動的微服務(wù),那么作為軟件工程師,您必須將您的代碼解耦為一個單獨的服務(wù),如果您注意到日益增加的復(fù)雜性和現(xiàn)有服務(wù)中的邏輯責(zé)任。 Mark Richards 在書中描述了 5 種模式:
分層架構(gòu)
事件驅(qū)動架構(gòu)
微內(nèi)核架構(gòu)(或插件架構(gòu))
微服務(wù)架構(gòu)
基于空間的架構(gòu)(或云架構(gòu)模式)
1.分層架構(gòu)
它是單體應(yīng)用程序最常見的架構(gòu)。該模式背后的基本思想是將應(yīng)用程序邏輯劃分為若干層,每一層都封裝了特定的角色。例如,持久層將負(fù)責(zé)您的應(yīng)用程序與數(shù)據(jù)庫引擎的通信。

2.事件驅(qū)動架構(gòu)
這種模式背后的想法是將應(yīng)用程序邏輯解耦為異步接收和處理事件的單一用途事件處理組件。這種模式是流行的分布式異步架構(gòu)模式之一,以高可擴(kuò)展性和適應(yīng)性著稱。

3. 微內(nèi)核架構(gòu)
Mikrokernel 架構(gòu),也稱為插件架構(gòu),是具有兩個主要組件的設(shè)計模式:核心系統(tǒng)和插件模塊(或擴(kuò)展)。一個很好的例子是Web 瀏覽器(核心系統(tǒng)),您可以在其中安裝無窮無盡的擴(kuò)展(或插件)。

4. 微服務(wù)架構(gòu)
微服務(wù)架構(gòu)由單獨部署的服務(wù)組成,理想情況下,每個服務(wù)都有單一的職責(zé)。這些服務(wù)相互獨立,如果一項服務(wù)失敗,其他服務(wù)將不會停止運行。

5. 基于空間的架構(gòu)
基于空間的模式背后的主要思想是分布式共享內(nèi)存,以緩解在數(shù)據(jù)庫級別經(jīng)常發(fā)生的問題。假設(shè)通過使用內(nèi)存數(shù)據(jù)處理大多數(shù)操作,我們可以避免數(shù)據(jù)庫中的額外操作,因此可能會從那里演變出任何未來的問題(例如,如果您的用戶活動數(shù)據(jù)實體已更改,您不需要更改一堆持久化的代碼并從數(shù)據(jù)庫中檢索該數(shù)據(jù))。 基本方法是將應(yīng)用程序分成處理單元(可以根據(jù)需要自動擴(kuò)展和縮減),其中數(shù)據(jù)將在這些單元之間復(fù)制和處理,而無需對中央數(shù)據(jù)庫進(jìn)行任何持久性(盡管將有本地存儲用于系統(tǒng)故障的場合)。

責(zé)任編輯:彭菁
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
4085瀏覽量
68569 -
代碼
+關(guān)注
關(guān)注
30文章
4977瀏覽量
74420 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3346瀏覽量
60428
原文標(biāo)題:幾個軟件架構(gòu)模式
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
FPGA架構(gòu)和應(yīng)用基礎(chǔ)知識
ARM架構(gòu)基礎(chǔ)知識小結(jié)
【HarmonyOS基礎(chǔ)知識】HarmonyOS系統(tǒng)架構(gòu)
ARM架構(gòu)基礎(chǔ)知識點匯總
一種基于軟件+服務(wù)平臺的軟件架構(gòu)模式
軟件架構(gòu)設(shè)計之常用架構(gòu)模式
軟件架構(gòu)設(shè)計之常用架構(gòu)模式介紹
10種常見的軟件體系架構(gòu)模式分析以及它們的用法、優(yōu)缺點
詳解SOA五種基本架構(gòu)模式
軟件架構(gòu)模式的詳細(xì)資料介紹
MVC架構(gòu)模式為什么悄然消失了
嵌入式7種架構(gòu)模式分析
嵌入式軟件最常見的架構(gòu)模式
淺談多機(jī)房部署的災(zāi)備架構(gòu)模式
架構(gòu)模式的基礎(chǔ)知識
評論