初始化
This commit is contained in:
73
.cursor/skills/refactoring/SKILL.md
Normal file
73
.cursor/skills/refactoring/SKILL.md
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
name: refactoring
|
||||
version: 1.1.0
|
||||
description: "基于测试保障的安全重构工作流,行为不变前提下改善代码结构。当需要重构、清理代码或消除技术债时使用。"
|
||||
requires: [vue-testing]
|
||||
---
|
||||
|
||||
> ⚠️ 核心执行流程已在 `.cursor/rules/033-refactoring.mdc` 中由 Cursor 自动注入。
|
||||
> 本文件提供完整模板、代码示例和边缘场景处理,供 Agent 按需深入 Read。
|
||||
|
||||
# Refactoring Workflow
|
||||
|
||||
## 触发条件
|
||||
|
||||
用户要求重构代码、清理技术债、优化代码结构或简化复杂逻辑。
|
||||
|
||||
## 核心原则
|
||||
|
||||
**重构 = 不改变外部行为的前提下改善内部结构**
|
||||
|
||||
- 每一步都要小到"显然正确"
|
||||
- 每一步之后测试必须全部通过
|
||||
- 如果测试不足,先补测试再重构
|
||||
|
||||
## 执行流程
|
||||
|
||||
### 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. 继续下一步
|
||||
|
||||
### 4. 验证
|
||||
|
||||
1. 运行完整测试套件
|
||||
2. ESLint 无报错
|
||||
3. 功能行为未改变
|
||||
|
||||
## 禁止事项
|
||||
|
||||
- ❌ 不要在重构中同时添加新功能
|
||||
- ❌ 不要一次改太多(改完跑不了测试)
|
||||
- ❌ 不要在没有测试的情况下重构核心逻辑
|
||||
- ❌ 不要重构正在被其他人修改的代码
|
||||
|
||||
## 验证
|
||||
|
||||
1. [ ] 所有测试通过
|
||||
2. [ ] ESLint 无报错
|
||||
3. [ ] 外部行为未改变
|
||||
4. [ ] 代码可读性提升(主观判断)
|
||||
Reference in New Issue
Block a user