軟件架構模式

當你深入到軟件工程領域時,總有一天需要學習軟件架構模式的基礎知識。我剛開始寫代碼時,並不知道在哪裏可以找到一些資料來簡要介紹現有的架構模式,這樣就不會太過詳細和混亂,而是非常抽象和易於理解。

這一直是個問題,直到我發現了 Mark Richards 的《軟件架構模式》一書。在這裏,我想與您分享這本書中最重要的部分和架構模式。(要了解更多信息,我強烈建議你閱讀這本書或他的報告 [https://www.oreilly.com/content/software-architecture-patterns/])。
作爲軟件工程師,爲什麼至少要學習基本的架構模式?

我相信有許多文章回答了這個問題,但我將給你一些參考答案。首先,如果您瞭解架構模式的基礎知識,那麼您就更容易遵循架構的需求。其次,瞭解這些模式將幫助您決定如何編碼:例如,如果您的應用程序設計是基於事件驅動的微服務,作爲一個軟件工程師,你必須將代碼解耦到單獨的服務,應該注意現有服務邏輯的複雜性和職責。(如果你沒有理解這部分,就跟隨本文,下面將簡要解釋這些模式)。
Mark Richards 在書中描述了 5 種模式:

1. 分層架構

它是單體應用程序最常見的架構。該模式背後的基本思想是將應用程序邏輯劃分爲幾個層,每層封裝特定的角色。例如,持久化層將負責應用程序與數據庫的通信。

分層架構

2. 事件驅動架構

此模式背後的思想是將應用程序邏輯解耦爲異步接收和處理事件的單一目的事件處理組件。該模式是一種流行的分佈式異步架構模式,以高可伸縮性和適應性而聞名。

事件驅動架構

3、微內核架構

微內核架構,也被稱爲插件架構,是一種設計模式,它有兩個主要組件:核心系統和插件模塊 (或擴展)。一個很好的例子就是 Web 瀏覽器 (核心系統),您可以在其中安裝無限的擴展 (或插件)。

微內核架構

4. 微服務架構

微服務架構由獨立部署的服務組成,其中每個服務在理想情況下都具有單一的職責。這些服務是相互獨立的,如果一個服務失敗,其他服務也不會停止運行。

微服務架構

5. 基於空間架構(雲架構)

基於空間架構背後的主要思想是分佈式共享內存,以減輕經常在數據庫級別發生的問題。假設通過使用內存數據庫處理大多數的數據操作,我們可以避免額外的操作,因此解決任何未來可能發生的問題。

基本方法是將應用程序劃分爲處理單元 (也可以根據需求自動向上和向下擴展),數據將被複制到對應處理單元中進行處理,這些處理單元之間沒有任何持久化的集中數據庫 (儘管因爲系統故障會有本地存儲系統)。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/0VHGf36R0cbaMEF3WS0oNw