軟體架構入門

2022-04-12 01:27:29 字數 2372 閱讀 7609

軟體架構(software architecture)就是軟體的基本結構。

合適的架構是軟體成功的最重要因素之一。大型軟體公司通常有專門的架構師職位(architect),只有資深程式設計師才可以擔任。

o'reilly 出版過一本免費的小冊子《software architecture patterns》(pdf), 介紹了五種最常見的軟體架構,是非常好的入門讀物。我讀後受益匪淺,下面就是我的筆記。

分層架構(layered architecture)是最常見的軟體架構,也是事實上的標準架構。如果你不知道要用什麼架構,那就用它。

這種架構將軟體分成若干個水平層,每一層都有清晰的角色和分工,不需要知道其他層的細節。層與層之間通過介面通訊。

雖然沒有明確約定,軟體一定要分成多少層,但是四層的結構最常見。

有的軟體在邏輯層和持久層之間,加了乙個服務層(service),提供不同業務邏輯需要的一些通用介面。

使用者的請求將依次通過這四層的處理,不能跳過其中任何一層。

優點

缺點

事件(event)是狀態發生變化時,軟體發出的通知。

事件驅動架構(event-driven architecture)就是通過事件進行通訊的軟體架構。它分成四個部分。

對於簡單的專案,事件佇列、分發器和事件通道,可以合為一體,整個軟體就分成事件**和事件處理器兩部分。

優點

缺點

微核架構(microkernel architecture)又稱為"外掛程式架構"(plug-in architecture),指的是軟體的核心相對較小,主要功能和業務邏輯都通過外掛程式實現。

核心(core)通常只包含系統執行的最小功能。外掛程式則是互相獨立的,外掛程式之間的通訊,應該減少到最低,避免出現互相依賴的問題。

優點

缺點

微服務架構(microservices architecture)是服務導向架構(service-oriented architecture,縮寫 soa)的公升級。

每乙個服務就是乙個獨立的部署單元(separately deployed unit)。這些單元都是分布式的,互相解耦,通過遠端通訊協議(比如rest、soap)聯絡。

微服務架構分成三種實現模式。

優點

缺點

雲結構(cloud architecture)主要解決擴充套件性和併發的問題,是最容易擴充套件的架構。

它的高擴充套件性,主要原因是沒使用**資料庫,而是把資料都複製到記憶體中,變成可複製的記憶體資料單元。然後,業務處理能力封裝成乙個個處理單元(prcessing unit)。訪問量增加,就新建處理單元;訪問量減少,就關閉處理單元。由於沒有**資料庫,所以擴充套件性的最大瓶頸消失了。由於每個處理單元的資料都在記憶體裡,最好要進行資料持久化。

這個模式主要分成兩部分:處理單元(processing unit)和虛擬中介軟體(virtualized middleware)。

虛擬中介軟體又包含四個元件。

優點

缺點

軟體架構 微服務架構

我們可以將微服務架構 microservices architecture 理解為 soa 的公升級。基於以下相同點 當問到微服務架構與soa的區別,我們能找到以下回答 微服務其核心思想是在應用開發領域,使用一系列微小服務來實現單個應用的方式途徑,或者說微服務的目的是有效的拆分應用,實現敏捷開發和部...

軟體架構 事件驅動架構

事件 event 就是狀態的顯著變化,比如說前面提到的客戶下單被執行。從 來分,事件可以分為系統內部事件和外部事件。從型別來分,可以分為業務事件和系統事件。事件驅動架構 event driven architecture,eda 乙個事件驅動框架 eda 定義了乙個設計和實現乙個應用系統的方法學,在...

家政軟體架構

家政管理系統 一.人力資源管理 a 輸送單位資訊 b 輸送計畫 c 聯絡日誌 二.員工資料管理 a 新增員工資料 b 員工資料附件 c 員工資料管理 d 請假員工管理 e 流失員工返回 三.員工培訓管理 a 培訓課程管理 b 上崗證發放 四.市場銷售管理 a 每日可選服務員 b 新增潛在客戶資料 c...