mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-09 02:43:29 +08:00
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>
This commit is contained in:
@@ -1,28 +1,83 @@
|
||||
# 重构清理
|
||||
|
||||
通过测试验证安全识别并删除无用代码:
|
||||
通过测试验证安全识别和删除死代码的每一步。
|
||||
|
||||
1. 运行无用代码分析工具:
|
||||
* knip:查找未使用的导出和文件
|
||||
* depcheck:查找未使用的依赖项
|
||||
* ts-prune:查找未使用的 TypeScript 导出
|
||||
## 步骤 1:检测死代码
|
||||
|
||||
2. 在 .reports/dead-code-analysis.md 中生成综合报告
|
||||
根据项目类型运行分析工具:
|
||||
|
||||
3. 按严重程度对发现进行分类:
|
||||
* 安全:测试文件、未使用的工具函数
|
||||
* 注意:API 路由、组件
|
||||
* 危险:配置文件、主要入口点
|
||||
| 工具 | 查找内容 | 命令 |
|
||||
|------|--------------|---------|
|
||||
| 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` |
|
||||
|
||||
4. 仅建议安全的删除操作
|
||||
如果没有可用工具,使用 Grep 查找零次导入的导出:
|
||||
|
||||
5. 每次删除前:
|
||||
* 运行完整的测试套件
|
||||
* 验证测试通过
|
||||
* 应用更改
|
||||
* 重新运行测试
|
||||
* 如果测试失败则回滚
|
||||
```
|
||||
# Find exports, then check if they're imported anywhere
|
||||
```
|
||||
|
||||
6. 显示已清理项目的摘要
|
||||
## 步骤 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 ✅
|
||||
```
|
||||
|
||||
## 规则
|
||||
|
||||
* **切勿在不先运行测试的情况下删除代码**
|
||||
* **一次只删除一个** — 原子化的变更便于回滚
|
||||
* **如果不确定就跳过** — 保留死代码总比破坏生产环境好
|
||||
* **清理时不要重构** — 分离关注点(先清理,后重构)
|
||||
|
||||
Reference in New Issue
Block a user