閱讀筆記:The Art of Unit Testing Chapter 12 Working with legacy code

重點

工程師可以根據單元的邏輯複雜度、依賴數量、核心價值來挑選值得投資時間重構的目標。

如何安全地重構

在重構前先幫既有的功能寫好整合測試(integration test),並且在確認整合測試全數綠燈後,才開始重構、並補寫單元測試。

重構完成後,再跑一次整合測試,確保功能都還有在正常運作。

從哪裡開始重構

如何評估優先順序

可以根據以下三種要素來評估哪些單元值得我們花時間重構它:

  1. 邏輯複雜度(logical complexity, cyclomatic complexity
  2. (被)依賴數量
  3. 整體優先度:該單元在整個服務中是否具有特殊地位(例:是否為核心商業邏輯)

推薦從「邏輯複雜度高」或「整體優先度高」的單元開始重構計畫。

策略

參考文件