3.0 KiB
3.0 KiB
重構與清理 (Refactor Clean)
安全地識別並移除死碼 (Dead code),且在每一步磁都執行測試驗證。
步驟 1:偵測死碼 (Dead Code)
根據專案類型執行分析工具:
| 工具 | 發現內容 | 指令 |
|---|---|---|
| knip | 未使用的匯出、檔案、依賴項 | npx knip |
| depcheck | 未使用的 npm 依賴項 | npx depcheck |
| ts-prune | 未使用的 TypeScript 匯出 | npx ts-prune |
| vulture | 未使用的 Python 程式碼 | vulture src/ |
| deadcode | 未使用的 Go 程式碼 | deadcode ./... |
| cargo-udeps | 未使用的 Rust 依賴項 | cargo +nightly udeps |
如果沒有可用工具,請使用 Grep 尋找匯入次數為零的匯出內容:
# 尋找匯出項目,然後檢查其是否在任何地方被匯入
步驟 2:將結果分類
將發現的內容按安全等級分類:
| 等級 | 範例 | 行動 |
|---|---|---|
| 安全 (SAFE) | 未使用的工具函式、測試助手、內部函式 | 放心刪除 |
| 警告 (CAUTION) | 元件、API 路由、中介軟體 (Middleware) | 驗證無動態匯入或外部使用者 |
| 危險 (DANGER) | 配置檔案、入口點、型別定義 | 觸碰前需深入調查 |
步驟 3:安全刪除迴圈 (Safe Deletion Loop)
針對每個標記為「安全」的項目:
- 執行完整測試套件 — 建立基準線 (確保全部通過)
- 刪除死碼 — 使用 Edit 工具進行精確刪除
- 重新執行測試套件 — 驗證是否造成損壞
- 如果測試失敗 — 立即使用
git checkout -- <file>復原並跳過此項 - 如果測試通過 — 繼續處理下一個項目
步驟 4:處理「警告」項目
在刪除「警告」項目之前:
- 搜尋動態匯入:
import(),require(),__import__ - 搜尋字串引用:配置檔案中的路由名稱、元件名稱
- 檢查是否為公共套件 API 的匯出項目
- 驗證沒有外部使用者 (如果是已發布的套件,請檢查依賴項)
步驟 5:合併重複項
移除死碼後,尋找:
- 近乎重複的函式 (>80% 相似) — 合併為一
- 冗餘的型別定義 — 進行整合
- 無實質價值的封裝函式 (Wrapper) — 將其內聯 (Inline)
- 無具體用途的重新匯出 (Re-exports) — 移除間接層
步驟 6:摘要報告
回報結果:
死碼清理摘要
──────────────────────────────
已刪除: 12 個未使用的函式
3 個未使用的檔案
5 個未使用的依賴項
已跳過: 2 個項目 (測試失敗)
節省: 移除了約 450 行程式碼
──────────────────────────────
所有測試皆已通過 ✅
規則
- 在執行測試之前,絕對不要刪除任何東西
- 一次只刪除一項 — 原子化變更有助於輕鬆回滾
- 如果不確定,請跳過 — 保留死碼總比破壞生產環境好
- 清理時不要進行重構 — 關注點分離 (先清理,稍後再重構)