来源: everything-claude-code by Affaan Mustafa 原始文件: agents/refactor-cleaner.md + commands/refactor-clean.md
重构与清理(Refactoring & Cleanup)
概述
一套系统化的死代码清理和代码整合工作流。通过分析工具检测未使用的代码、导出和依赖,按安全等级分类后逐步删除,每一步都经过测试验证。核心原则是"宁可保留死代码,也不要破坏生产环境"。
二、清理命令(Command)
安全地识别和移除死代码,每一步都有测试验证
第 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 步:将发现分类为安全等级
| 等级 | 示例 | 操作 |
|---|---|---|
| 安全(SAFE) | 未使用的工具函数、测试辅助函数、内部函数 | 放心删除 |
| 谨慎(CAUTION) | 组件、API 路由、中间件 | 验证无动态导入或外部消费者 |
| 危险(DANGER) | 配置文件、入口点、类型定义 | 删除前先调查 |
第 3 步:安全删除循环
对每个"安全(SAFE)"项目:
- 运行完整测试套件 -- 建立基线(全部通过)
- 删除死代码 -- 使用编辑工具进行精确移除
- 重新运行测试套件 -- 验证没有破坏任何东西
- 如果测试失败 -- 立即用
git checkout -- <file>回退并跳过此项 - 如果测试通过 -- 继续处理下一项
第 4 步:处理"谨慎(CAUTION)"项目
删除"谨慎"项目前:
- 搜索动态导入:
import()、require()、__import__ - 搜索字符串引用:路由名称、配置中的组件名称
- 检查是否从公共包 API 导出
- 验证无外部消费者(如果已发布则检查依赖方)
第 5 步:整合重复代码
移除死代码后,查找:
- 近似重复的函数(>80% 相似)-- 合并为一个
- 冗余的类型定义 -- 统一整合
- 不增加价值的包装函数 -- 内联它们
- 无用的再导出(Re-exports)-- 移除间接层
第 6 步:总结
报告结果:
死代码清理报告
-------------------------------
已删除: 12 个未使用的函数
3 个未使用的文件
5 个未使用的依赖
已跳过: 2 个项目(测试失败)
节省: 约 450 行已移除
-------------------------------
所有测试通过
三、核心规则
- 删除前务必先运行测试
- 一次删除一项 -- 原子化变更使回滚更容易
- 不确定时跳过 -- 保留死代码好过破坏生产环境
- 清理时不要重构 -- 分离关注点(先清理,再重构)
四、成功指标
- 所有测试通过
- 构建成功
- 无回归问题
- 包体积减小