Part I: Foundations#

本書第一部分建立軟體架構的基礎知識,涵蓋第 1 至第 8 章。

這個部分回答幾個核心問題:

  • 什麼是軟體架構? — 定義 software architecture 的四大面向:結構(structure)、架構特性(architecture characteristics)、架構決策(architecture decisions)與設計原則(design principles)
  • 架構師該如何思考? — 從 architectural thinking 的角度看待問題,理解架構與設計的差異,以及技術廣度與深度的取捨
  • 什麼是模組化? — 探討 modularity 的衡量指標,包含 coupling、cohesion 與 connascence
  • 什麼是架構特性? — 定義並分類架構特性("-ilities"),學習如何從需求中識別、衡量與治理這些特性
  • 架構特性的範圍為何? — 引入 architecture quantum 的概念,重新思考架構特性的適用邊界
  • 如何以元件為基礎思考架構? — 探討元件的識別、劃分與設計

這個部分是全書的根基。作者強調,軟體架構是一個不斷變動的領域,許多過去的公理(axioms)已因為 DevOps、雲端運算等技術變革而需要重新檢視。理解這些基礎概念,才能在後續章節中有效評估各種架構風格。