手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

軟件架構(gòu)模式

2020-09-04 16:51:46 4230

軟件架構(gòu)模式

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

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

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

 

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

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

2、微服務(wù)模式

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

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

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

 

微內(nèi)核模式

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

 

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

 

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

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

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

 

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

 1、靈活性和擴展性

2、運行插件可以在運行時加載和卸載

3、操作便捷

4、易于部署

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

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

 

 

微服務(wù)模式

 

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

 

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

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

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

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

3、因為微服務(wù)相對隔離,不會影響其他業(yè)務(wù),實現(xiàn)解耦

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

5、可獨立測試,部署,迭代效率高

 

分層架構(gòu)

 

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

 

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

 

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

 

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

1、可測試性,每層可獨立測試

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

3、每次功能點可以修改獨立的一層即可完成

 

 

事件驅(qū)動模式

 

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

 

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

 

事件驅(qū)動的優(yōu)點是:

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

2、具有彈性能力

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

 

 

空間架構(gòu)模式

 

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

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

 

優(yōu)點:

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

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

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

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

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

 


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

這條文檔是否有幫助解決問題?

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

在文檔使用中是否遇到以下問題: