code-refactoring
Рефакторинг кода с уверенностью
Этот навык помогает разработчикам упрощать сложный код, сохраняя поведение. Он предлагает пошаговые шаблоны рефакторинга, такие как Extract Method, принцип DRY и дизайн SOLID, чтобы повысить ясность кода и сократить технический долг.
스킬 ZIP 다운로드
Claude에서 업로드
설정 → 기능 → 스킬 → 스킬 업로드로 이동
토글을 켜고 사용 시작
테스트해 보기
"code-refactoring" 사용 중입니다. Refactor this function: function processOrder(order) { /* 100 lines of mixed validation, calculation, inventory check, and order creation */ }
예상 결과:
## Refactoring Plan
### Original Function: processOrder (100 lines)
### Changes Made:
1. **Extracted validateOrder()** - Handles input validation
2. **Extracted calculateTotal()** - Computes order total with tax and shipping
3. **Extracted checkInventory()** - Validates stock availability
4. **Extracted createOrder()** - Creates the order in database
### New Structure:
```typescript
async function processOrder(order: Order) {
validateOrder(order);
const total = calculateTotal(order);
await checkInventory(order);
return await createOrder(order, total);
}
```
### Behavior Preserved:
- [x] Same validation rules
- [x] Same total calculation
- [x] Same inventory checking
- [x] Same order creation
"code-refactoring" 사용 중입니다. These two functions have duplicated logic: getActiveUsers() and getActivePremiumUsers()
예상 결과:
## Duplication Found
### Before (Duplicated):
```typescript
async function getActiveUsers() {
return await db.user.findMany({
where: { status: 'active', deletedAt: null },
select: { id: true, name: true, email: true }
});
}
async function getActivePremiumUsers() {
return await db.user.findMany({
where: { status: 'active', deletedAt: null, plan: 'premium' },
select: { id: true, name: true, email: true }
});
}
```
### After (DRY):
```typescript
async function getActiveUsers(filter: UserFilter = {}) {
return await db.user.findMany({
where: { status: 'active', deletedAt: null, ...filter },
select: { id: true, name: true, email: true }
});
}
// Usage: getActiveUsers() or getActiveUsers({ plan: 'premium' })
```
"code-refactoring" 사용 중입니다. This class violates Single Responsibility. How should I refactor it?
예상 결과:
## SOLID Analysis
### Original: User class with 3 responsibilities
- Data storage (save to DB)
- Email sending
- Report generation
### Refactored Structure:
| Class | Responsibility |
|-------|----------------|
| User | Data container |
| UserRepository | Database operations |
| EmailService | Communication |
| UserReportGenerator | Reporting |
### Benefits:
- Each class has one reason to change
- Easier to test in isolation
- Flexible to swap implementations
- Better collaboration in teams
보안 감사
안전Static analysis flagged 48 potential issues including external_commands, network, filesystem, and cryptographic patterns. Manual review confirms all findings are false positives. The skill is documentation-only (SKILL.md contains code examples for teaching refactoring techniques). No actual shell execution, network requests, filesystem operations, or cryptographic code exists in this skill. Risk level: SAFE.
중간 위험 문제 (1)
낮은 위험 문제 (3)
품질 점수
만들 수 있는 것
Упростить длинные функции
У разработчика есть функция на 200 строк, которая делает слишком многое. Используйте Extract Method, чтобы разбить её на более мелкие, сфокусированные функции с понятными именами.
Удалить дублирующуюся логику
В кодовой базе одна и та же логика валидации повторяется в нескольких местах. Примените принцип DRY, чтобы вынести общую логику в переиспользуемые функции.
Улучшить объектно-ориентированный дизайн
Класс имеет несколько обязанностей, вызывая тесную связанность. Примените принципы SOLID, чтобы разделить ответственность на хорошо определённые классы.
이 프롬프트를 사용해 보세요
Отрефакторь эту функцию, чтобы её было проще поддерживать. Примените шаблон Extract Method, чтобы разбить её на более мелкие, сфокусированные функции:
Найди и удали дублирующийся код в этой кодовой базе. Примени принцип DRY, вынеся общую логику в переиспользуемые функции:
Проанализируй этот класс и предложи, как применить принципы SOLID. Определи, какие принципы нарушены и как это исправить:
Я хочу отрефакторить этот код. Сначала помоги мне понять его текущее поведение (входы, выходы, побочные эффекты). Затем предложи изменения рефакторинга, которые сохраняют поведение, и расскажи, как проверить эти изменения:
모범 사례
- Пишите тесты до рефакторинга, чтобы зафиксировать базовое поведение
- Делайте небольшие, пошаговые изменения — по одному рефакторингу за раз
- Запускайте тесты после каждого изменения, чтобы убедиться, что поведение сохранено
- Используйте ясные, описательные имена для выделенных функций и переменных
- Делайте коммит после каждого успешного рефакторинга для простого отката
피하기
- Рефакторинг и одновременное добавление новых функций — сначала разделяйте ответственности
- Пропуск тестов, потому что «изменение простое» — всегда проверяйте поведение
- Создание уровней абстракции, которые добавляют сложность без явной пользы
- Рефакторинг кода, который вы не понимаете — сначала проанализируйте поведение
- Игнорирование влияния абстракций на производительность — при необходимости профилируйте