<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          5種主要的軟件架構(gòu)模式

          共 2491字,需瀏覽 5分鐘

           ·

          2020-07-19 22:14

          449c5bff49c9caf5d7e39b7adc63061d.webp程序員的成長之路互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享?關(guān)注


          閱讀本文大概需要 4.5 分鐘。

          譯者:王延飛譯文鏈接:https://dzone.com/articles/5-major-software-architecture-patterns
          在全球軟件架構(gòu)峰會上,我們討論了很多軟件架構(gòu)模式,因此我決定寫一篇有關(guān)它的文章,重點介紹知名的軟件架構(gòu)師的見解。

          什么是軟件架構(gòu)模式?

          軟件架構(gòu)模式是經(jīng)過驗證的,具有良好設(shè)計結(jié)構(gòu)的方法。更具體地說,架構(gòu)模式是在實踐中歸納總結(jié)的一組設(shè)計決策,具有明確定義的屬性,并可以重復(fù)使用。軟件開發(fā)有時可以看作是選擇,定制和組合架構(gòu)模式的過程。軟件架構(gòu)師必須決定如何采用哪幾種架構(gòu)模式,如何使這些架構(gòu)模式與軟件系統(tǒng)特定的上下文相適應(yīng)。Mark Richards他寫了一本書,名為《軟件架構(gòu)模式》,其中主要介紹了5種軟件架構(gòu)模式:微內(nèi)核模式(Microkernel Pattern),微服務(wù)模式 (Microservices Pattern ),分層架構(gòu)模式( Layered Architecture Pattern),基于事件的模式(Event-based Pattern),基于空間的架構(gòu)模式(Space-based Pattern)。

          5種主要的軟件架構(gòu)模式

          1.微內(nèi)核模式(Microkernel Pattern)

          微內(nèi)核架構(gòu)模式也稱為插件模式。這種模式允許你將其他應(yīng)用程序功能作為插件添加到核心應(yīng)用程序,從而提供可擴展性以及功能分離。微內(nèi)核架構(gòu)模式由兩種類型的架構(gòu)組件組成:核心系統(tǒng)和插件模塊。
          • 插件模塊,提供應(yīng)用程序功能和自定義處理邏輯的可擴展性,靈活性和隔離性。

          • 傳統(tǒng)上,微內(nèi)核架構(gòu)模式的核心系統(tǒng)僅包含使系統(tǒng)運行所需的最小功能。

          微內(nèi)核架構(gòu)模式的最佳示例是Eclipse IDE。下載基本的Eclipse產(chǎn)品為你提供的只是一個編輯器功能。但是,一旦開始添加插件,它就會成為高度可定制和有用的產(chǎn)品。

          優(yōu)點:

          • 極大的靈活性和可擴展性

          • 一些插件允許在應(yīng)用程序運行時添加

          • 良好的便攜性

          • 易于部署

          • 能夠快速響應(yīng)不斷變化的環(huán)境

          • 插件模塊可以單獨進行測試。

          • 高性能,因為你可以自定義和簡化應(yīng)用程序以僅包括所需的那些功能。

          • 應(yīng)用場景

          1. 從不同來源獲取數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)并將其輸出到不同地方的應(yīng)用程序

          2. 工作流應(yīng)用程序

          3. 任務(wù)類應(yīng)用程序

          2.微服務(wù)模式 (Microservices Pattern )

          當你將應(yīng)用程序作為一組微服務(wù)編寫時,實際上就是在編寫可以協(xié)同工作的多個應(yīng)用程序。其中每個微服務(wù)都有自己的職責(zé),團隊可以獨立于其他微服務(wù)進行開發(fā)。這些微服務(wù)之間唯一的依賴就是通信。當微服務(wù)彼此通信時,你必須確保它們之間發(fā)送的消息能夠向后兼容。

          優(yōu)點:

          • 可以分別編寫,維護和部署每個微服務(wù)

          • 易于擴展,因為你可以僅擴展需要擴展的微服務(wù)

          • 更新迭代應(yīng)用程序的各個部分比較容易,因為它們較小,并且與其他部分的耦合較少

          • 團隊成員能快速響應(yīng)且富有成效

          • 高度可維護和可測試–微服務(wù)模式滿足快速頻繁的開發(fā)和部署

          • 可獨立部署–無需與其他團隊協(xié)調(diào)即可部署其服務(wù)

          應(yīng)用場景:

          • 小型網(wǎng)站

          • 邊界明確的企業(yè)數(shù)據(jù)中心

          • 快速發(fā)展的業(yè)務(wù)

          • 多部門協(xié)作的開發(fā)團隊

          3.分層架構(gòu)模式( Layered Architecture Pattern)

          最常見的架構(gòu)模式是分層架構(gòu)模式。分層體系架構(gòu)模式是n層模式,其中軟件系統(tǒng)組件根據(jù)職責(zé)被設(shè)計在不同的層中。這是大多數(shù)軟件的傳統(tǒng)設(shè)計方法,并且具有獨立性。這意味著所有組件都是互連的,但彼此之間不依賴。分層體系架構(gòu)模式的每一層在應(yīng)用程序中都有特定的角色和職責(zé)。例如,顯示層將負責(zé)處理用戶界面交互邏輯,而業(yè)務(wù)層將負責(zé)執(zhí)行與請求關(guān)聯(lián)的特定業(yè)務(wù)規(guī)則。分層體系架構(gòu)模式的強大功能之一是,組件之間職責(zé)分離。特定層中的組件僅處理與該層有關(guān)的邏輯。

          優(yōu)點:

          • 高可測試性,每一層都可以單獨測試。

          • 高度易于開發(fā),因為這種模式眾所周知,并且實現(xiàn)起來并不太復(fù)雜,而且大多數(shù)公司都通過逐層分離技能來開發(fā)應(yīng)用程序,這種模式已經(jīng)成為大多數(shù)業(yè)務(wù)應(yīng)用程序開發(fā)的自然選擇。

          • 可維護

          • 易于單獨更新某一層

          應(yīng)用場景:

          • 標準業(yè)務(wù)線應(yīng)用程序,其功能不只是CRUD操作

          • 需要快速構(gòu)建的新應(yīng)用程序

          • 適用于經(jīng)驗不足的開發(fā)團隊

          • 需要嚴格的可維護性和可測試性的應(yīng)用

          4.基于事件的模式(Event-based Pattern)

          這是用于開發(fā)高度可擴展系統(tǒng)、最常見的分布式異步架構(gòu)模式。該架構(gòu)模式由用于監(jiān)聽并異步處理事件的一系列組件組成。事件驅(qū)動的架構(gòu)模式構(gòu)建了一個接收所有數(shù)據(jù)的中央單元,然后將其委托給處理特定類型的單獨模塊。

          優(yōu)點:

          • 容易適應(yīng)復(fù)雜,經(jīng)?;靵y的環(huán)境

          • 彈性伸縮

          • 當出現(xiàn)新的事件類型時,很容易擴展

          應(yīng)用場景:

          • 具有異步數(shù)據(jù)流的異步系統(tǒng)

          • 用戶界面交互

          5.基于空間的架構(gòu)模式(Space-based Pattern)

          基于空間的架構(gòu)模式,可以專門用于解決軟件系統(tǒng)的伸縮性和并發(fā)性問題。對于用戶訪問量經(jīng)常發(fā)生變化、偶爾出現(xiàn)高并發(fā)的應(yīng)用程序,這是一種有用的軟件架構(gòu)模式。這種模式,通過消除中央數(shù)據(jù)庫約束,并使用復(fù)制基于內(nèi)存的數(shù)據(jù)網(wǎng)格來實現(xiàn)伸縮性。基于空間的架構(gòu)模式旨在通過在多個服務(wù)器之間拆分處理和存儲數(shù)據(jù),來避免高負載下的軟件系統(tǒng)功能崩潰。

          優(yōu)點:

          • 能夠快速響應(yīng)不斷變化的環(huán)境。

          • 盡管基于空間的架構(gòu)模式通常不是分布式,但它們是動態(tài)的,并且基于云的復(fù)雜工具允許將應(yīng)用程序輕松“推送”到服務(wù)器,從而簡化了部署。

          • 通過內(nèi)存中的數(shù)據(jù)訪問和此模式中內(nèi)置的緩存機制可實現(xiàn)高性能。

          • 高可伸縮性來自于對集中式數(shù)據(jù)庫的依賴很小或根本沒有依賴的事實,因此提高了可伸縮性。

          應(yīng)用場景

          • 數(shù)據(jù)量大的應(yīng)用程序,例如用戶日志

          • 低價值數(shù)據(jù),偶爾可能丟失而不會造成嚴重后果

          • 社交類的應(yīng)用程序

          推薦閱讀:

          太贊了,竟然用SpringBoot打造一款網(wǎng)頁版的IM,進行聊天...

          知乎高贊:為什么像王者榮耀這樣的游戲Server不愿意使用微服務(wù)?

          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機,樹莓派,等等。在公眾號內(nèi)回復(fù)「2048」,即可免費獲?。?!

          微信掃描二維碼,關(guān)注我的公眾號

          寫留言

          朕已閱?540b53a8acbea338469bfea9b44ba084.webp

          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品91秘 一区二区三区 | 日韩三级精品 | 欧美日韩国产三级 | 国产91精品在线观看 | 国产鸡巴视频 |