Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/zhangloveyan/backend-skill --skill proj-refactor명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | proj-refactor |
| description | 代码重构指南和常见重构模式。用于改善代码质量、消除代码坏味道、优化代码结构。 |
Step 0: 校验任务文档 → Step 1: 识别问题 → Step 2: 确定范围 → Step 3: 编写测试 → Step 4: 小步重构 → Step 5: 验证
同步任务文档:
问题: 方法超过 50 行
重构方法: 提取方法
// ✗ 重构前
public void processOrder(Order order) {
// 50+ 行代码...
}
// ✓ 重构后
public void processOrder(Order order) {
validateOrder(order);
calculatePrice(order);
saveOrder(order);
sendNotification(order);
}
问题: 类超过 500 行,职责过多
重构方法: 提取类
// ✗ 重构前
public class UserService {
// 用户管理 + 订单管理 + 支付管理...
}
// ✓ 重构后
public class UserService { /* 用户管理 */ }
public class OrderService { /* 订单管理 */ }
public class PaymentService { /* 支付管理 */ }
问题: 相同代码出现多处
重构方法: 提取公共方法
// ✗ 重构前
public void methodA() {
// 重复代码块
}
public void methodB() {
// 重复代码块
}
// ✓ 重构后
private void commonMethod() {
// 公共代码块
}
public void methodA() {
commonMethod();
}
public void methodB() {
commonMethod();
}
问题: 方法参数超过 4 个
重构方法: 引入参数对象
// ✗ 重构前
public void createUser(String name, String phone, String email,
String address, Integer age, Integer status) {}
// ✓ 重构后
public void createUser(UserCreateRequest request) {}
问题: 硬编码的数字或字符串
重构方法: 提取常量或枚举
// ✗ 重构前
if (status == 1) { }
if (type.equals("VIP")) { }
// ✓ 重构后
if (status == StatusEnum.ENABLE.getCode()) { }
if (type.equals(UserType.VIP)) { }
问题: if/for 嵌套超过 3 层
重构方法: 提前返回、提取方法
// ✗ 重构前
public void process(User user) {
if (user != null) {
if (user.isEnabled()) {
if (user.hasPermission()) {
// 业务逻辑
}
}
}
}
// ✓ 重构后
public void process(User user) {
if (user == null) return;
if (!user.isEnabled()) return;
if (!user.hasPermission()) return;
// 业务逻辑
}
问题: 用注释解释复杂代码
重构方法: 让代码自解释
// ✗ 重构前
// 检查用户是否有效
if (u != null && u.getS() == 1 && u.getD() == 0) { }
// ✓ 重构后
if (user.isValid()) { }
// User 类中
public boolean isValid() {
return this.status == StatusEnum.ENABLE && this.delFlag == 0;
}