Skip to main content

Ch15: 什麼是架構

discussion
  • 有想過成為一名軟體架構師嗎?
  • 什麼是軟體架構?
  • 架構師要做些什麼?
tip

盡可能讓更多的選項是開放的

系統架構該注意的四點

  • 開發
  • 部署
  • 運行
  • 維護

保持選項開放

推遲決定架構的細節技術

兩大元素

  • 策略:系統的核心業務
  • 細節:系統的技術實現

例如

  • 沒必要在早期就決定資料庫系統
  • 沒必要在早期就選擇伺服器
  • 沒必要在早期就決定採用 REST
  • 沒必要在早期就決定採用相依注入框架
tip

好的架構師可以將不做出決定的數量最大化

設備獨立

1960 年代後期,發明了設備獨立。作業系統將「IO 設備」抽象成『用來處理看似卡片單元紀錄的軟體功能』。程式只要呼叫『處理抽象設備』的作業系統服務。就可以告訴作業系統,這些抽象服務連到的是什麼設備

垃圾廣告信

在磁帶上編寫提取資料元素的程式,將這些元素正確印在表單需要出現的地方,將編寫完的磁帶安裝到印表機上,就可安照程式的內容列印出想要的內容。

程式擁有一個樣貌(shape)。樣貌將策略從細節中脫離。策略是編寫的程式,細節是設備。將可以延緩決定使用哪種設備。

總結

  • 小心地將細節從策略中分離出來,使策略與細節徹底脫鉤
  • 有關細節的決定可以盡可能地被延遲和延緩