(1/5)軟件架構入門-分層架構


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

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

一、分層架構

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

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

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

表現層(presentation):用戶界面,負責視覺和用戶互動

業務層(business):實現業務邏輯

持久層(persistence):提供數據,SQL 語句就放在這一層

數據庫(database) :保存數據


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

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


優點

結構簡單,容易理解和開發

不同技能的程序員可以分工,負責不同的層,天然適合大多數軟件公司的組織架構

每一層都可以獨立測試,其他層的接口通過模擬解決

缺點

一旦環境變化,需要代碼調整或增加功能時,通常比較麻煩和費時

部署比較麻煩,即使只修改一個小地方,往往需要整個軟件重新部署,不容易做持續發布

軟件升級時,可能需要整個服務暫停

擴展性差。用戶請求大量增加時,必須依次擴展每一層,由于每一層內部是耦合的,擴展會很困難


我的看法:(僅代表個人觀點)

1.適合大多數小項目框架,開發成本可控,可維護性合理。(java系有非常經典的struts2、spring mvc)

2.適合功能內聚,對外依賴較小的項目。

3.對非功能性需求(如性能、安全性)較高的項目需要有其他工具配合才能滿足需求。

4.對于大項目來說,力不從心。需要更高維度的架構來解決。


上面是引用了阮老師的文章。稍后提供鏈接。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容