重點摘要#

  • 架構中沒有絕對的理想(there are no ideals),情境(context)才是決定一切的關鍵
  • 情境是唯一能在架構決策中凌駕簡潔性的力量
  • 好的架構是在多個競爭優先級中做出精明決策的產物
  • 技術辯論(X vs Y)之所以永無止境,正因為缺乏引導性的情境

詳細內容#

作者以一個有趣的悖論開場:要傳達「架構中沒有理想」這個理念,本身就是一種矛盾。但這正是軟體架構最重要的一課。

情境的範圍#

當提到情境時,不只是指高層的商業驅動力,還包括:

  • 新興技術的發展趨勢
  • 各領域的思想領導力
  • 多個快速變化的目標

好的架構師會同時追蹤多個快速移動的目標。好的架構不在於你放了什麼進去,而更在於你省略了什麼

經典案例:M1 Abrams 坦克#

一個極佳的案例說明了情境的影響力:為現代戰場坦克選擇資料庫時,團隊發現坦克主砲發射時產生的電磁脈衝會完全摧毀車載系統和資料庫。在這個情境下,恢復時間(recovery time)成為壓倒性的決定因素,最終選擇了 InterBase,因為它的架構能讓磁碟寫入始終保持一致狀態,從硬故障中恢復最快。

超越技術辯論#

技術社群中 X vs Y 的辯論往往只是茶餘飯後的消遣。這些辯論之所以激烈,不是因為技術之間有巨大差異,而是因為它們之間的差異很微妙,缺乏引導性的情境作為決勝牌。

你的團隊應該擺脫教條式的理想主義,優先反思情境,然後從中找到最簡潔的解決方案。

— By Edward Garson