Chapter 8, 9 - 分層設計
Source
書籍:簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 JavaScript 為例
主要觀念
利用底層函式來撰寫上層函式
同一層的函式應該服務相同目的,EX:
第一、二層 - 購物車業務規則 (cart_tax)、一般業務規則 (calc_tax)
第三層 - 基本購物車操作(calc_total)
第四層 - 基本商品操作(set_price)
第五層 - 寫入時複製操作(add_element_last)
第六層 - JS 語言元素 (.slice)
以上呼叫圖參考 page 8-19。
在直觀的實作中,所有箭頭的長度應該要一致,如果不一致代表:同一層的函式具有不同的細節程度。
分層應該舒適就好,沒有軟體是完美的。
呼叫圖顯示的資訊
- 可維護性:當需求改變時,修改上層函式比修改底層函式安全,因為底層函式被許多上層函式引用。
- 可測試性:當資源時間有限時,測試底層函式效益比測試上層大,因爲大多數程式都依賴底層函式的正確運作。
- 可重複使用性:略
TIP
關於測試,書中有寫到因為頂層函式跟業務邏輯相關,可能經常改變,所以測試底層函式的效益比較大。 頂層函式因為修改頻率高,對應的測試也需要改寫,比較耗資源。