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