冷靜評估重構和重寫的風險與利益
Legacy Code 特徵
- 年代久遠
- 結構龐大
- 經歷很多迭代
- 沒有文件
決定重構步驟
- 補上功能測試
- 補上單元測試(隨著重構補上)
- 補文件
- 開始重構
README.md
- 專案的用途
- 相依元件
- 建置方法
- 本地
- 遠端
- 測試方法
以上其他的內容,不要放在README.md裡面!
其他文件
- 放在 repo wiki
docs
資料夾 MD檔 (由版本控制控管)
開始重構
以上長長一串內容,終於來到重構
分析現況與進度
現況有多嚴重
PHP codeSniffer
PHPStan - PHP static Analysis Tool
重構 定義不會有新功能
這樣對老闆來說是一個沒有價值的動作,老闆一定會討厭你,因此要怎麼辦呢?
逐步改進,維持撰寫新功能的任務,重構前人的程式碼
時間怎麼辦?
- 提升自己的實力,效率不比一般工程師差
- 懂得說不
- 維持專業
避免寫出新Legacy Code
- 資訊並不想要自由
- 開發者不喜歡寫文件,但還是要花時間維護文件
- 時常與同事討論文件內容
- 避免將功能塞入單一大專案,建立方便修改的小專案
- 時常和同事做 code review
- 多溝通避免資訊遺失