国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

軟件架構(gòu)模式

2020-09-04 16:51:46 645

軟件架構(gòu)模式

自從做了一些平臺(tái)化系統(tǒng)之后,發(fā)現(xiàn)最原始的抽象,建模,分層,內(nèi)聚,低耦合,面向?qū)ο笞兊迷絹?lái)越重要了,有的時(shí)候技術(shù)就是這樣,那些最本質(zhì),最樸實(shí)的東西,有種返璞歸真的感覺(jué),當(dāng)然其他很多事情也一樣,因?yàn)椴还苁羌夹g(shù),架構(gòu)還是其他事情,我們都是要去提出問(wèn)題并解決問(wèn)題的,而將問(wèn)題劃分成小的問(wèn)題去解決是最重要的方法論。

說(shuō)到軟件架構(gòu)模式,什么是軟件架構(gòu)模式呢?

軟件架構(gòu)模式指的是那些被驗(yàn)證了的,經(jīng)歷過(guò)復(fù)雜性洗禮的,具有良好的設(shè)計(jì)結(jié)構(gòu)的系統(tǒng)。也就是在實(shí)踐過(guò)程中歸納總結(jié)出的一套設(shè)計(jì)決策,具有明確的定義和屬性,可以重復(fù)使用,提高效率,降低復(fù)雜度和心智負(fù)擔(dān)。

 

那么市面上有哪些值得實(shí)踐的軟件模式呢?

1、微內(nèi)核模式

2、微服務(wù)模式

3、分層架構(gòu)模式

4、事件驅(qū)動(dòng)模式

5、空間架構(gòu)模式

 

微內(nèi)核模式

微內(nèi)核也稱為插件模式,允許業(yè)務(wù)方可以將其他應(yīng)用程序邏輯以插件方式,添加到核心應(yīng)用邏輯中,從而實(shí)現(xiàn)了可擴(kuò)展性,做到了核心邏輯和業(yè)務(wù)邏輯的功能分離。

 

這也是我們做平臺(tái)化系統(tǒng)中首先想到的一點(diǎn),平臺(tái)沉淀那些通用的邏輯,流程,規(guī)則。個(gè)性化的業(yè)務(wù)邏輯以插件方式集成到平臺(tái)上,個(gè)性化邏輯在插件內(nèi)自組織,自流轉(zhuǎn),實(shí)現(xiàn)了平臺(tái)和業(yè)務(wù)的隔離。

 

微內(nèi)核模式包含兩部分:核心系統(tǒng)和插件模塊。

1、 核心系統(tǒng):提供程序功能和自定義處理邏輯的擴(kuò)展能力,具有靈活性,擴(kuò)展性和隔離性

2、一般微內(nèi)核模式的核心系統(tǒng)只包含系統(tǒng)運(yùn)行所需的最小功能

 

微內(nèi)核最佳的示例是來(lái)源于Eclipse IDE,我們系統(tǒng)變成微內(nèi)核架構(gòu)需要具備以下的一些特點(diǎn):

 1、靈活性和擴(kuò)展性

2、運(yùn)行插件可以在運(yùn)行時(shí)加載和卸載

3、操作便捷

4、易于部署

5、插件可以獨(dú)立進(jìn)行測(cè)試

6、高性能,簡(jiǎn)化應(yīng)用程序所需功能

 

 

微服務(wù)模式

 

隨著微服務(wù)的流程,我們會(huì)將原有的一體架構(gòu)拆成微服務(wù)架構(gòu),一組微服務(wù)實(shí)現(xiàn)某一個(gè)邏輯上的業(yè)務(wù)能力。微服務(wù)自身具有獨(dú)立的功能職責(zé),團(tuán)隊(duì)可以就具體的微服務(wù)進(jìn)行開發(fā)測(cè)試,微服務(wù)之間通過(guò)通信完成信息交互。

 

我們?cè)谄脚_(tái)化架構(gòu)中,還是將具體的功能方向的服務(wù)進(jìn)行進(jìn)一步抽象,變成獨(dú)立的微服務(wù),多個(gè)微服務(wù)在邏輯上組成了平臺(tái)的某個(gè)業(yè)務(wù)能力。

相信大家對(duì)于微服務(wù)都比較熟悉了,就不再贅述了,微服務(wù)的優(yōu)點(diǎn)如下:

1、可以獨(dú)立編寫,維護(hù)和部署

2、易于擴(kuò)展,業(yè)務(wù)迭代只需修改對(duì)應(yīng)的微服務(wù)

3、因?yàn)槲⒎?wù)相對(duì)隔離,不會(huì)影響其他業(yè)務(wù),實(shí)現(xiàn)解耦

4、團(tuán)隊(duì)響應(yīng)迅速

5、可獨(dú)立測(cè)試,部署,迭代效率高

 

分層架構(gòu)

 

軟件架構(gòu)被水平的分成多層,每層具有獨(dú)立的職責(zé)。大多數(shù)架構(gòu)常用的架構(gòu)模式就是分層了,從最開始接觸的三層架構(gòu),到后期的MVC,MVP架構(gòu),都透漏著分層的影子。

 

分層架構(gòu)要求每一層具有特定的角色和職責(zé),比如負(fù)責(zé)顯示的顯示層可以處理用戶交互邏輯。業(yè)務(wù)邏輯層主要負(fù)責(zé)請(qǐng)求邏輯和數(shù)據(jù)之間的組合和處理規(guī)則。

 

分層架構(gòu)要求每一層處理該層相關(guān)的邏輯,我們?cè)谄脚_(tái)化系統(tǒng)中的分層更加抽象,不再是以具體的業(yè)務(wù)進(jìn)行劃分,而是按照抽象的能力劃分成多個(gè)層了。

 

分層架構(gòu)的優(yōu)點(diǎn):

1、可測(cè)試性,每層可獨(dú)立測(cè)試

2、易于開發(fā),由于功能相對(duì)隔離,開發(fā)比較簡(jiǎn)單,但是需要防止同一層之間的能力過(guò)于分散,可以引入領(lǐng)域的方式進(jìn)行二次隔離

3、每次功能點(diǎn)可以修改獨(dú)立的一層即可完成

 

 

事件驅(qū)動(dòng)模式

 

這是一種高擴(kuò)展的解決方案,架構(gòu)中通過(guò)監(jiān)聽并異步處理事件方式組成一系列組件。事件驅(qū)動(dòng)模式構(gòu)建了一個(gè)接收所有數(shù)據(jù)的中央處理單元,之后將事件委托給特定事件類型的模塊單獨(dú)處理。

 

事件驅(qū)動(dòng)多用于平臺(tái)架構(gòu)中非業(yè)務(wù)相關(guān)的功能,通過(guò)事件監(jiān)聽與處理實(shí)現(xiàn)了進(jìn)一步解耦,多用于數(shù)據(jù)流驅(qū)動(dòng)或是用戶界面交互。

 

事件驅(qū)動(dòng)的優(yōu)點(diǎn)是:

1、 可以通過(guò)事件解耦,適應(yīng)混亂環(huán)境

2、具有彈性能力

3、當(dāng)出現(xiàn)新的事件時(shí),容易擴(kuò)展

 

 

空間架構(gòu)模式

 

空間架構(gòu)模式多用于解決軟件系統(tǒng)的伸縮性和并發(fā)性問(wèn)題。對(duì)于用戶量經(jīng)常發(fā)生變化,偶爾出現(xiàn)并發(fā)的系統(tǒng),可以采用這種架構(gòu)。通過(guò)消除對(duì)于數(shù)據(jù)庫(kù)的依賴,使用復(fù)制基于內(nèi)存的數(shù)據(jù)實(shí)現(xiàn)伸縮性。

空間架構(gòu)模式主要是希望通過(guò)多個(gè)服務(wù)器之間拆分處理和存儲(chǔ)數(shù)據(jù),避免高負(fù)載下軟件系統(tǒng)的崩潰。

 

優(yōu)點(diǎn):

 1、可以快速適應(yīng)變化

2、通過(guò)內(nèi)存中數(shù)據(jù)訪問(wèn)內(nèi)置的緩存,實(shí)現(xiàn)了高性能

3、高伸縮性來(lái)源于降低了對(duì)集中數(shù)據(jù)庫(kù)的依賴,或是沒(méi)有依賴,提高了伸縮性

4、空間架構(gòu)可以看作是一種圍繞于數(shù)據(jù)源的異構(gòu),無(wú)狀態(tài)的處理方式。

以上幾種架構(gòu)可以按需使用到系統(tǒng)之中,以解決不同的問(wèn)題。

 


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: