Skip to content

Chapter 8, 9 - 分層設計

Source

書籍:簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 JavaScript 為例

主要觀念

  • 利用底層函式來撰寫上層函式

  • 同一層的函式應該服務相同目的,EX:

    • 第一、二層 - 購物車業務規則 (cart_tax)、一般業務規則 (calc_tax)

    • 第三層 - 基本購物車操作(calc_total)

    • 第四層 - 基本商品操作(set_price)

    • 第五層 - 寫入時複製操作(add_element_last)

    • 第六層 - JS 語言元素 (.slice)

      以上呼叫圖參考 page 8-19。

  • 在直觀的實作中,所有箭頭的長度應該要一致,如果不一致代表:同一層的函式具有不同的細節程度。

  • 分層應該舒適就好,沒有軟體是完美的。

呼叫圖顯示的資訊

  1. 可維護性:當需求改變時,修改上層函式比修改底層函式安全,因為底層函式被許多上層函式引用。
  2. 可測試性:當資源時間有限時,測試底層函式效益比測試上層大,因爲大多數程式都依賴底層函式的正確運作。
  3. 可重複使用性:略

TIP

關於測試,書中有寫到因為頂層函式跟業務邏輯相關,可能經常改變,所以測試底層函式的效益比較大。 頂層函式因為修改頻率高,對應的測試也需要改寫,比較耗資源。