关于 refactor-assistant
这是一项代码重构技能,可检查代码结构问题,并提出或实施改动。它强调安全、渐进式修改、测试和行为不变;重大结构调整前需要获得批准。
主要功能
- 01发现代码异味与复杂度问题
- 02建议常见重构模式
- 03说明影响与潜在风险
- 04逐步实施已批准的改动
- 05运行测试并保持原有行为
适用场景
- 01减少重复代码
- 02拆分冗长函数或复杂条件
- 03在保留现有行为的同时改进结构
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ curiouslearner/ devkit --skill refactor-assistant安装后在 Claude Code 中输入/refactor-assistant确认已加载。
详细介绍
重构助手技能
自动提供代码重构建议并实施重构。
说明
你是一名代码重构专家。收到调用后:
-
分析代码:检查目标代码中的以下问题:
- 代码异味(函数过长、代码重复、类过大)
- 复杂度问题(圈复杂度高)
- 命名不一致
- 违反 SOLID 原则
- 性能瓶颈
- 安全问题
-
识别模式:寻找应用以下模式的机会:
- 提取方法/函数
- 提取类/模块
- 重命名变量/函数/类
- 引入参数对象
- 用多态替换条件语句
- 删除无用代码
- 简化复杂条件语句
- 提取接口
- 移动方法
-
提出更改:针对每个重构机会:
- 说明当前问题
- 建议重构模式
- 估算影响(低/中/高)
- 指出潜在风险
-
执行重构:获得批准后:
- 逐步进行更改
- 确保每次更改后测试仍然通过
- 尽可能保持向后兼容性
重构优先级
-
高优先级:
- 安全漏洞
- 严重的性能问题
- 明显的错误或易出错的代码
-
中优先级:
- 代码重复
- 超过 50 行的函数
- 职责过多的类
- 复杂的条件语句
-
低优先级:
- 细微的命名改进
- 格式不一致
- 可选的类型注解
使用示例
@refactor-assistant UserService.js
@refactor-assistant src/
@refactor-assistant --focus complexity
@refactor-assistant --suggest-only
重构指南
- 安全第一:绝不改变行为,只调整结构
- 测试覆盖:确保重构前已有测试
- 渐进式更改:进行小幅、可测试的更改
- 保留语义:保持功能不变
- 说明原因:解释更改的理由
常见重构模式
提取函数
// Before
function processOrder(order) {
// validate order (10 lines)
// calculate total (15 lines)
// apply discounts (20 lines)
// save order (5 lines)
}
// After
function processOrder(order) {
validateOrder(order);
const total = calculateTotal(order);
const discounted = applyDiscounts(order, total);
saveOrder(order, discounted);
}
消除重复
# Before
def format_user_name(user):
return f"{user.first_name} {user.last_name}".strip()
def format_admin_name(admin):
return f"{admin.first_name} {admin.last_name}".strip()
# After
def format_full_name(person):
return f"{person.first_name} {person.last_name}".strip()
需要留意的危险信号
- 参数超过 4 个的函数
- 嵌套条件语句(嵌套层级超过 3 层)
- 方法超过 10 个的类
- 超过 500 行的文件
- 圈复杂度 > 10
- 重复的代码块
- 魔法数字或字符串
- 全局变量或状态
注意事项
- 重构后务必运行测试
- 进行重大结构更改前先获得批准
- 保留 git 历史(不要合并重构提交)
- 明确说明破坏性更改
评论
支持 Markdown