如何處理 Legacy Code 心得

冷靜評估重構和重寫的風險與利益

Legacy Code 特徵

  • 年代久遠
  • 結構龐大
  • 經歷很多迭代
  • 沒有文件

決定重構步驟

  1. 補上功能測試
  2. 補上單元測試(隨著重構補上)
  3. 補文件
  4. 開始重構

README.md

  • 專案的用途
  • 相依元件
  • 建置方法
    • 本地
    • 遠端
  • 測試方法

以上其他的內容,不要放在README.md裡面!

其他文件

  1. 放在 repo wiki
  2. docs 資料夾 MD檔 (由版本控制控管)

開始重構

以上長長一串內容,終於來到重構

分析現況與進度

現況有多嚴重

PHP codeSniffer

PHPStan – PHP static Analysis Tool

重構 定義不會有新功能

這樣對老闆來說是一個沒有價值的動作,老闆一定會討厭你,因此要怎麼辦呢?

逐步改進,維持撰寫新功能的任務,重構前人的程式碼

時間怎麼辦?

  • 提升自己的實力,效率不比一般工程師差
  • 懂得說不
  • 維持專業

避免寫出新Legacy Code

  • 資訊並不想要自由
  • 開發者不喜歡寫文件,但還是要花時間維護文件
  • 時常與同事討論文件內容
  • 避免將功能塞入單一大專案,建立方便修改的小專案
  • 時常和同事做 code review
  • 多溝通避免資訊遺失

發佈留言