程式碼膨脹分類
目標
在不犧牲正確性、必要的錯誤處理、可及性、安全性、證據或可維護性的前提下,減少不正當的複雜度。
分類流程
- 識別實際的面向使用者或研究需求及其支援的測試。將功能與安全性視為限制條件。
- 盤點潛在的膨脹項目:重複邏輯、死路徑、未使用的依賴、不必要的層級、投機配置、多餘的包裝器,以及過大的生成檔案。
- 僅衡量有意義的指標:認知複雜度、引入的依賴、程式碼變動量、重複覆蓋率、審查負擔與穩定性。程式碼行數本身並非品質指標。
- 針對每個候選項目提問:這支援了哪個需求或哪個失敗情境? 追溯到證據;即使冗長,若有必要則保留。
- 依序進行變更:刪除未使用的,合併重複的,簡化抽象層,然後最佳化熱點路徑。避免當一個局部修復就足夠時進行大規模重寫。
- 在測試下進行最小可逆變更;執行正向與回歸檢查。保留行為與外部觀察到的合約。
- 回報優點與權衡取捨。如果刪除削弱了涵蓋率或模糊了行為,請不要合併該簡化。
護欄
禁止僅僅為了減少檔案數量而刪除研究來源、驗證邊界、核准邊界、安全檢查或已知的失敗範例。禁止為小功能引入不合理的新的程式庫。不得在「重構」標籤下變更凍結的基準測試語意。
輸出
決策登錄表,內容包含候選項目、理由、證據、變更風險及保留的防護措施。
成功標準
審查者能為每個刪除動作提出正當理由,並確認受支援的行為與信任邊界保持不變。