本章概覽#

軟體架構是軟體開發中至關重要的環節,投入了大量時間與注意力——組織裡到處是架構師(architect),也有大量開發者立志成為架構師,研討會更整段議程都在談「不可不知的架構」。然而,儘管關注度極高,軟體架構究竟是什麼、其背後的學科又如何運作,反而很少被認真討論。

這個落差在使用微服務架構時尤其關鍵——若沒有扎實的架構基礎,有效應用微服務(知道何時用、如何用)幾乎不可能。否則,你就會像第 2 章的 FTGO 一樣,把基本盤忽略掉、用蠻力推動轉型,最終付出慘痛代價。

本章將討論的主題#

  • 軟體架構的定義
  • 為何架構重要
  • 架構風格(architectural style)的概念
  • 誰來做架構、何時做架構

各小節導讀#

  • 3.1 什麼是軟體架構:從外部黑盒視角(操作 operations 與事件 events)切入,給出明確定義,並比較三種對「架構為何重要」的觀點:非功能需求架構顯著需求、以及品質屬性
  • 3.2 多維度的架構:介紹 4+1 view model 的延伸版,從領域、元件、部署、建置四個靜態視角加上動態 scenario 視角來描述架構。
  • 3.3 架構風格綜覽:對照分層架構與六角架構,理解什麼是架構風格。
  • 3.4 誰來架構,何時架構:把架構視為一連串設計決策,並討論去中心化決策與「架構建議流程」(architecture advice process)。