軟件架構模式概述

O'Reilly出版了一本免費的電子書《Software Architecture Patterns》(PDF),將目前流行的幾種架構做了詳細的介紹和對比,除了傳統的分層架構,其他架構相當的前沿.這本書內容精簡,非常值得一讀,是軟件架構非常好的入門書籍.這些文章是我閱讀這本書後整理的筆記.

對於開發人員來說,不進行正式的架構設計就直接開發編碼再普通不過.在工作上經常遇到這樣的情況.沒有一個明確的,定義良好的架構,大多數開發人員和架構師會採用傳統的分層架構模式(也稱爲N層架構),將模塊源碼分隔成若干個包(package)進行分層.不幸的是,這種做法經常導致的結果是無組織的源碼集合,各個模塊缺乏明確的角色,責任和關係.這通常被稱爲大泥球(big ball of mud)反模式架構.

缺少架構的程序通常是緊密耦合,脆弱,難以改變的,沒有頭緒.如果不能理解系統的模塊和組件之間的內部工作原理,很難確定程序的架構特徵.

關於部署和維護的問題都很難回答:架構的規模如何?程序的性能特徵如何?程序容易修改嗎?程序的部署模型是怎麼樣?程序的響應如何?

架構模式可以幫助你定義程序的基本特徵和行爲.例如一些架構模式很自然讓程序成爲大規模(scalable)的程序,有些模式讓程序變得靈巧敏捷(agile).瞭解這些架構的特徵,優點和缺點,你就可以根據你特定的業務需求和目標選擇一種合適的架構模式.

作爲一個設計師,你需要解釋自己選擇的架構模式,尤其是在選擇一個特別的體系架構模式,O'Reilly的Software Architecture Patterns》提供了充足的信息來爲你的架構選擇提供證明.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章