Files
everything-claude-code/docs/zh-CN/commands/refactor-clean.md
zdoc.app ada4cd75a3 docs(zh-CN): sync Chinese docs with latest upstream changes (#304)
* docs(zh-CN): sync Chinese docs with latest upstream changes

* update

---------

Co-authored-by: neo <neo.dowithless@gmail.com>
2026-03-02 22:28:27 -08: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 查找零次导入的导出:

# Find exports, then check if they're imported anywhere

步骤 2分类发现结果

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

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

步骤 3安全删除循环

对于每个 安全 项:

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

步骤 4处理谨慎项

在删除 谨慎 项之前:

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

步骤 5合并重复项

删除死代码后,查找:

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

步骤 6总结

报告结果:

Dead Code Cleanup
──────────────────────────────
Deleted:   12 unused functions
           3 unused files
           5 unused dependencies
Skipped:   2 items (tests failed)
Saved:     ~450 lines removed
──────────────────────────────
All tests passing ✅

规则

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