code-refactor
Solid基于 Martin Fowler 方法论的系统化代码重构 skill。适用于用户请求重构代码、改进代码结构、减少技术债、清理旧代码、消除 code smell 或提升可维护性时。这个 skill 采用分阶段、带研究与计划的安全增量实施方式。
Code & Development 36,947 stars
4455 forks Updated 2 days ago MIT
Install
Quality Score: 93/100
Stars 20%
Recency 20%
Frontmatter 20%
Documentation 15%
Issue Health 10%
License 10%
Description 5%
Skill Content
# 代码重构 Skill
这是一个基于 Martin Fowler《Refactoring: Improving the Design of Existing Code》(第 2 版)的系统化代码重构方法。这个 skill 强调安全、渐进的修改,并由测试提供保障。
> “重构是在不改变软件外部行为的前提下,改进其内部结构的过程。” — Martin Fowler
## 核心原则
1. **保持行为不变**:外部行为必须保持一致
2. **小步前进**:每次只做很小、��测试的改动
3. **测试驱动**:测试是安全网
4. **持续进行**:重构是长期过程,不是一次性任务
5. **协作确认**:每个阶段都需要用户确认
## 工作流程总览
```
��段 1:研究与分析
↓
阶段 2:测试覆盖评估
↓
阶段 3:识别代码异味
↓
阶段 4:创建重构计划
↓
阶段 5:增量实施
↓
阶段 6:评审与迭代
```
---
## 阶段 1:研究与分析
### 目标
- 理解代码库结构和用���
- 确定重构范围
- 收集业务需求背景
### 先向用户确认的问题
开始前先确认:
1. **范围**:哪些文件 / 模块 / 函数需要重构?
2. **目标**:你想解决什么问题?(可读性、性能、可维护性)
3. **约束**:有哪些区域不能改?
4. **时间压力**:这是否阻塞了其他工作?
5. **测试状态**:是否已有测试?是否通过?
### 行动
- [ ] 阅读并理解目标代码
- [ ] 识别依赖和集成点
- [ ] 记录当前架构
- [ ] 标记已有技术债迹象(TODO、FIXME)
### 输出
向用户汇报:
- 代码结构总结
- 识别出的问题区域
- 初步建议
- **请求继续执行的批准**
---
## 阶段 2:测试覆盖评估
### 为什么测试重要
> “没有测试的重构,就像没有安全带就开车。” — Martin Fowler
测试是安全重构的**关键前提**。没有测试,很容易引入 bug。
### 评估步骤
1. **检查现有测试**
```bash
# 查找测试文件
find . -name "*test*" -o -name "*spec*" | head -20
```
2. **运行现有测试**
```bash
# JavaScript / TypeScript
npm test
# Python
pytest -v
# Java
mvn test
```
3. **检查覆盖率(如果可用)**
```bash
# JavaScript
npm run test:coverage
# Python
pytest --cov=.
```
### 决策点:询问用户
**如果测试存在且通过:**
- 进入阶段 3
**如果测试缺失或不完整:**
给出选项:
1. 先写测试(推荐)
2. 在重构过程中逐步补测试
3. 不写测试直接继续(有风险,需要用户确认)
**如果测试失败:**
- 停止。先修复失败测试再重构
- 问用户:是否先修测试?
### 测试编写建议(如需要)
对每个要重构的函数,测试应覆盖:
- 正常路径
- 边界情况(空输入、null、边界值)
- 错误场景(非法输入、异常)
使用“红-绿-重构”循环:
1. 写失败...
Details
- Author
- luongnv89
- Repository
- luongnv89/claude-howto
- Created
- 7 months ago
- Last Updated
- 2 days ago
- Language
- Python
- License
- MIT
Integrates with
Similar Skills
Semantically similar based on skill content — not just same category
Code & Development Listed
large-repo-refactor
在大型存量代码库做重构时使用。控制影响面,小步推进,不破坏现有行为。
3 Updated 5 days ago
Wade-DevCode AI & Automation Listed
pdlc-refactor
代码重构(保持外部行为不变,改善内部结构)
7 Updated 4 days ago
kanfu-panda Code & Development Listed
refactoring-patterns
提取方法、消除重复、小步提交的重构模式
2 Updated today
Sweetteabittersugar