Contents

[筆記] 處理老舊程式碼的五個步驟

在軟體工程領域中,處理老舊程式碼是一個不可避免的挑戰。本文介紹了五個步驟來有效管理和改進老舊程式碼,從接受其存在到縮小重寫範圍,幫助開發團隊提升效率和輸出品質。

引言

在軟體工程領域中,處理老舊程式碼是不可避免的挑戰。無論你在職業生涯中擔任什麼角色,老舊程式碼都可能影響你的工作效率。有效地管理和改進老舊程式碼對於提升團隊的開發效率和輸出品質至關重要。

作者介紹五個步驟,面對老舊程式碼問題:

  1. 接受老舊程式碼的存在
  2. 清楚定義老舊程式碼
  3. 依照變更頻率優先處理
  4. 漸進式改進
  5. 最後縮小重寫範圍

連結

Five steps to managing legacy code

作者@‌Jack_Franklin

步驟 1:接受老舊程式碼的存在

  1. 認識到老舊程式碼是普遍存在的:所有程式庫和團隊都會面對老舊程式碼的挑戰。
  2. 不要將老舊程式碼視為失敗:這是正常的,並非個人或團隊的錯誤。
  3. 設立合理目標:理解根除所有遺留代碼是不切實際的,應專注於減少遺留代碼並改善其狀況。

步驟 2:清晰定義老舊程式碼

  1. 明確老舊程式碼的定義:確保團隊對"老舊程式碼"的定義達成一致。通常有以下特徵而難以處理:
    • 缺乏自動化測試
    • 缺乏文件
    • 缺乏專家
  2. 識別真正的老舊程式碼:舊程式碼但有完善的文件和測試,可能不成問題。

步驟 3:根據變更頻率優先更新

  1. 評估程式碼的變更頻率:了解程式碼區域的變更頻率,並根據其對業務價值的影響進行優先排序。
  2. 優先處理影響業務的老舊程式碼:如果某個區域影響到關鍵功能或需要頻繁變更,要優先處理。
  3. 評估重寫的價值:考慮是否值得重寫。

步驟 4:進行漸進式改進

  1. 選擇適當的改進方法
    • 漸進式改進逐步進行,將代碼分為小步驟,降低風險。
    • 大爆炸重寫:僅在必要時使用,需注意風險。
  2. 實施漸進式重寫
    • 分解為多個拉取請求。
    • 使用功能標誌(feature flags)來控制新代碼的開關。
    • 測試新代碼在受限用戶群中的表現,並確保其正常運行。

步驟 5:縮小重寫範圍

  1. 限制重寫的範圍:將重寫範圍劃分為多個小部分,逐步完成。
  2. 控制重寫風險
    • 避免在重寫過程中同時處理其他變更。
    • 儘量使重寫過程分階段完成,並通過功能標誌進行逐步發布。
  3. 最終清理
    • 在重寫完成並確認成功後,移除功能標誌並刪除舊程式碼。

反思

  • 接受遺留代碼的現實:將遺留代碼視為技術挑戰,並逐步提升代碼質量和團隊滿意度。
  • 持續改進:隨著經驗的積累,不斷提高測試覆蓋率和代碼質量,最終實現最小擾動下的代碼現代化。

[思考] 早知如此 何必當初