65 lines
1.9 KiB
Plaintext
65 lines
1.9 KiB
Plaintext
---
|
||
description: >
|
||
安全重构技能。当用户要求重构代码、清理技术债、优化代码结构
|
||
或简化复杂逻辑时激活。行为不变前提下改善内部结构。
|
||
alwaysApply: false
|
||
---
|
||
|
||
# Refactoring Workflow
|
||
|
||
> 本文件是精简执行摘要。完整流程、模板和深度参考见:
|
||
> Read `.cursor/skills/refactoring/SKILL.md`
|
||
|
||
依赖技能:`vue-testing`(Cursor 已通过 `skill-vue-testing` 规则自动加载)
|
||
|
||
## 黄金规则
|
||
|
||
> 重构 = 不改变外部行为的前提下改善内部结构。
|
||
> 每一步都要小到"显然正确",每一步之后测试必须全部通过。
|
||
> 如果测试不足,先补测试再重构。
|
||
|
||
## 执行流程
|
||
|
||
### 1. 评估现状
|
||
|
||
1. 读取目标代码,识别"代码坏味道"
|
||
2. 运行现有测试确认基线:`npm test -- --related`
|
||
3. 如果测试覆盖不足,**先补充测试**
|
||
|
||
### 2. 制定重构计划
|
||
|
||
| 坏味道 | 重构手法 | 风险 |
|
||
|--------|---------|------|
|
||
| 函数过长(>50行) | Extract Function | 低 |
|
||
| 重复代码 | Extract + Consolidate | 低 |
|
||
| 过长参数列表 | Introduce Parameter Object | 低 |
|
||
| Switch/If 过多 | Replace with Polymorphism | 中 |
|
||
| 大类 | Extract Class | 中 |
|
||
| Feature Envy | Move Method | 中 |
|
||
| 深层嵌套 | Replace Nested with Guard Clauses | 低 |
|
||
| 大型组件 | 拆分为子组件 | 中 |
|
||
| 条件复杂度 | 策略模式/映射表 | 中 |
|
||
| 魔法数字 | 提取常量/枚举 | 低 |
|
||
|
||
### 3. 小步执行
|
||
|
||
对每一步:
|
||
1. 做一个**原子级**的重构变更
|
||
2. 运行测试 -> 全部通过
|
||
3. Git commit(可选,但建议频繁提交)
|
||
4. 继续下一步
|
||
|
||
## 禁止事项
|
||
|
||
- 不要在重构中同时添加新功能
|
||
- 不要一次改太多(改完跑不了测试)
|
||
- 不要在没有测试的情况下重构核心逻辑
|
||
- 不要重构正在被其他人修改的代码
|
||
|
||
## 验证
|
||
|
||
- [ ] 所有测试通过
|
||
- [ ] ESLint 无报错
|
||
- [ ] 外部行为未改变
|
||
- [ ] 代码可读性提升
|