Files
everything-claude-code/docs/zh-CN/commands/refactor-clean.md
2026-03-22 15:39:24 -07:00

2.8 KiB
Raw Blame History

重构清理

通过测试验证安全识别和删除死代码的每一步。

步骤 1检测死代码

根据项目类型运行分析工具:

工具 查找内容 命令
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分类发现结果

将发现结果按安全层级分类:

层级 示例 操作
安全 未使用的工具函数、测试辅助函数、内部函数 放心删除
谨慎 组件、API 路由、中间件 验证没有动态导入或外部使用者
危险 配置文件、入口点、类型定义 在操作前仔细调查

步骤 3安全删除循环

对于每个 安全 项:

  1. 运行完整测试套件 — 建立基准(全部通过)
  2. 删除死代码 — 使用编辑工具进行精确删除
  3. 重新运行测试套件 — 验证没有破坏任何功能
  4. 如果测试失败 — 立即使用 git checkout -- <file> 回滚并跳过此项
  5. 如果测试通过 — 处理下一项

步骤 4处理谨慎项

在删除 谨慎 项之前:

  • 搜索动态导入:import()require()__import__
  • 搜索字符串引用:配置中的路由名称、组件名称
  • 检查是否从公共包 API 导出
  • 验证没有外部使用者(如果已发布,请检查依赖项)

步骤 5合并重复项

删除死代码后,查找:

  • 近似的重复函数(>80% 相似)— 合并为一个
  • 冗余的类型定义 — 整合
  • 没有增加价值的包装函数 — 内联它们
  • 没有作用的重新导出 — 移除间接引用

步骤 6总结

报告结果:

无用代码清理
──────────────────────────────
已删除:   12 个未使用函数
           3 个未使用文件
           5 个未使用依赖项
已跳过:   2 个项目(测试失败)
已节省:   ~450 行代码被移除
──────────────────────────────
所有测试通过 ✅

规则

  • 切勿在不先运行测试的情况下删除代码
  • 一次只删除一个 — 原子化的变更便于回滚
  • 如果不确定就跳过 — 保留死代码总比破坏生产环境好
  • 清理时不要重构 — 分离关注点(先清理,后重构)