Ch15: 什麼是架構
discussion
- 有想過成為一名軟體架構師嗎?
- 什麼是軟體架構?
- 架構師要做些什麼?
tip
盡可能讓更多的選項是開放的
系統架構該注意的四點
- 開發
- 部署
- 運行
- 維護
保持選項開放
推遲決定架構的細節技術
兩大元素
- 策略:系統的核心業務
- 細節:系統的技術實現
例如
- 沒必要在早期就決定資料庫系統
- 沒必要在早期就選擇伺服器
- 沒必要在早期就決定採用 REST
- 沒必要在早期就決定採用相依注入框架
tip
好的架構師可以將不做出決定的數量最大化
設備獨立
1960 年代後期,發明了設備獨立。作業系統將「IO 設備」抽象成『用來處理看似卡片單元紀錄的軟體功能』。程式只要呼叫『處理抽象設備』的作業系統服務。就可以告訴作業系統,這些抽象服務連到的是什麼設備
垃圾廣告信
在磁帶上編寫提取資料元素的程式,將這些元素正確印在表單需要出現的地方,將編寫完的磁帶安裝到印表機上,就可安照程式的內容列印出想要的內容。
程式擁有一個樣貌(shape)。樣貌將策略從細節中脫離。策略是編寫的程式,細節是設備。將可以延緩決定使用哪種設備。
總結
- 小心地將細節從策略中分離出來,使策略與細節徹底脫鉤
- 有關細節的決定可以盡可能地被延遲和延緩