mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 13:43:26 +08:00
* docs(zh-CN): sync Chinese docs with latest upstream changes * update --------- Co-authored-by: neo <neo.dowithless@gmail.com>
2.8 KiB
2.8 KiB
重构清理
通过测试验证安全识别和删除死代码的每一步。
步骤 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:安全删除循环
对于每个 安全 项:
- 运行完整测试套件 — 建立基准(全部通过)
- 删除死代码 — 使用编辑工具进行精确删除
- 重新运行测试套件 — 验证没有破坏任何功能
- 如果测试失败 — 立即使用
git checkout -- <file>回滚并跳过此项 - 如果测试通过 — 处理下一项
步骤 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 ✅
规则
- 切勿在不先运行测试的情况下删除代码
- 一次只删除一个 — 原子化的变更便于回滚
- 如果不确定就跳过 — 保留死代码总比破坏生产环境好
- 清理时不要重构 — 分离关注点(先清理,后重构)