mcpField
R
refactor-process

refactor-process

github.com/igmarin开发335 次安装4 周前更新
代码仓库

关于 refactor-process

refactor-process 是用于执行行为保持型重构的编码技能,以小步修改并逐步运行测试。它指导开发者建立测试基线、规划变更并设置检查点。

主要功能

  1. 01修改前要求特征测试通过
  2. 02规划原子化变换步骤
  3. 03每次变更后运行测试
  4. 04测试失败时立即撤销
  5. 05设置基线、方案和完成检查点

适用场景

  1. 01在保持行为的同时重构模块
  2. 02将复杂方法拆分为较小单元
  3. 03确保每次小幅修改通过测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/igmarin/ruby-core-skills --skill refactor-process

安装后在 Claude Code 中输入/refactor-process确认已加载。

详细介绍

重构流程

在执行此流程前,先应用执行约定。

快速参考

方面规则
前提条件编辑前必须已有特征测试,且测试全部通过
步骤大小每次只进行一项原子转换(如重命名变量、提取方法等)
验证每个单独步骤之后都运行测试
不改变行为重构期间不添加新功能、不修复缺陷,也不改变返回值
回滚如果测试未通过,立即撤销,不要在代码处于损坏状态时调试

流程步骤

步骤 1:建立基线
  • 运行该类或模块的现有测试。
  • 如果覆盖率不足或较弱,编写特征测试(用于记录当前行为,包括边界情况和错误的测试)。
  • 确认所有测试都通过后再继续。
步骤 2:规划步骤
  • 明确目标(例如,将复杂方法提取到独立的类中,简化条件代码块)。
  • 将目标拆解为一系列原子重构操作(重命名、提取、内联、移动、替换条件等)。
步骤 3:执行与验证循环

针对每个计划步骤:

  1. 进行一项单独的原子代码修改。
  2. 运行测试。
  3. 如果测试通过,保存或提交该步骤,然后继续。
  4. 如果测试未通过,丢弃更改(例如,通过 git checkout 或撤销),分析根本原因,并尝试更小的步骤。

检查点模式

暂停并与用户确认:

  1. 基线检查点: 在进行任何编辑前,展示特征测试和当前实现。
  2. 重构提案: 概述计划进行的转换步骤。
  3. 完成检查点: 提供最终重构后的代码和测试套件验证报告。

重构循环示例(提取方法)

基线(通过):

class ReportGenerator
  def generate(data)
    # Formats raw data to report
    formatted = data.map { |row| "#{row[:id]}: #{row[:name].strip.capitalize}" }
    
    # Renders report
    "=== Report ===\n" + formatted.join("\n") + "\n=============="
  end
end

步骤 1:提取格式化逻辑(原子编辑):

class ReportGenerator
  def generate(data)
    formatted = format_rows(data)
    "=== Report ===\n" + formatted.join("\n") + "\n=============="
  end

  private

  def format_rows(data)
    data.map { |row| "#{row[:id]}: #{row[:name].strip.capitalize}" }
  end
end

操作: 立即运行测试,确认测试通过。


反模式

  • 行为蔓延: 将重构与行为更改(缺陷修复、优化)放在完全独立的提交中。
  • “大步跳跃式”重构: 一次进行多项非平凡更改会让故障难以诊断;务必采用尽可能小的原子步骤。

集成

场景后续技能
建立基线覆盖率test-planning-process → tdd-process
记录新提取的 APIwrite-yard-docs
重构后审查review-process

评论

支持 Markdown