Skip to content

Latest commit

 

History

History
98 lines (80 loc) · 3.17 KB

File metadata and controls

98 lines (80 loc) · 3.17 KB
name refactor-advisor
description 重构顾问 - 识别代码坏味道并提供重构方案

代码重构顾问

触发条件

当用户要求重构代码、优化代码结构、改善代码质量、消除技术债务时激活此技能。

工作流程

第 1 步:扫描代码库

  • 使用 grep/rg 扫描目标目录,识别潜在坏味道
  • 统计文件行数、函数长度、参数数量等指标
  • 查找重复代码块(相似度 > 80%)

第 2 步:分类坏味道

按严重程度分类发现的问题:

等级 含义 说明
🔴 严重 必须立即修复 影响可维护性和稳定性
🟡 中等 建议尽快修复 降低代码可读性
🟢 轻微 可择机优化 不影响功能但有改进空间

第 3 步:优先级排序

按以下维度综合排序:

  1. 影响范围 — 被引用/调用次数越多,优先级越高
  2. 变更频率 — git log 频繁改动的文件优先
  3. 修复成本 — 成本低且收益高的优先处理

第 4 步:输出重构方案

常见坏味道检测

坏味道 特征 重构手法 等级
长方法 函数超过 50 行 提取方法 (Extract Method) 🔴
大类 类超过 300 行 提取类 (Extract Class) 🔴
重复代码 相似代码块出现 3+ 次 提取公共方法 🔴
过长参数 函数参数超过 4 个 引入参数对象 🟡
嵌套过深 if/for 嵌套 3+ 层 卫语句 (Guard Clause) 🟡
魔法数字 硬编码的数字 提取为常量 🟢
过长链式调用 a.b.c.d.e 提取中间变量 🟢
全局可变状态 全局变量被多处修改 封装为模块/引入依赖注入 🔴
过度耦合 模块间相互依赖 依赖反转、引入接口 🟡

输出格式

完整报告模板

# 代码重构报告

## 概要
- 扫描文件数:XXX
- 发现问题数:XX(🔴 X / 🟡 X / 🟢 X)
- 预估工作量:X 天

## 问题列表

### 问题 1:[问题标题]
- **📍 位置**`src/services/user.ts:45-120`
- **🔍 问题**:该函数长达 75 行,包含 3 层嵌套,职责不单一
- **🛠️ 重构方案**- 提取 `validateUserData()` 方法
  - 提取 `saveToDatabase()` 方法
  - 使用卫语句替代嵌套 if
- **⚠️ 风险评估**- 该函数被 12 处调用,需全面回归测试
  - 建议先添加单元测试再重构
- **Before**```typescript
  function processUser(data) { /* 75行... */ }
  • After
    function processUser(data) {
      const validated = validateUserData(data);
      return saveToDatabase(validated);
    }

重构路线图

阶段 内容 优先级 预估
P1 修复 🔴 严重问题 2天
P2 处理 🟡 中等问题 3天
P3 优化 🟢 轻微问题 1天

## 注意事项
- 重构前确保有足够的测试覆盖
- 每次重构尽量小步提交,便于回滚
- 重构不应改变外部行为(行为保持)
- 大规模重构建议分阶段进行,每阶段独立可验证
- 关注重构过程中的性能回退风险