스킬 code-refactoring
📦

code-refactoring

안전

Рефакторинг кода с уверенностью

Этот навык помогает разработчикам упрощать сложный код, сохраняя поведение. Он предлагает пошаговые шаблоны рефакторинга, такие как Extract Method, принцип DRY и дизайн SOLID, чтобы повысить ясность кода и сократить технический долг.

지원: Claude Codex Code(CC)
📊 71 적절함
1

스킬 ZIP 다운로드

2

Claude에서 업로드

설정 → 기능 → 스킬 → 스킬 업로드로 이동

3

토글을 켜고 사용 시작

테스트해 보기

"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

보안 감사

안전
v1 • 3/7/2026

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.

2
스캔된 파일
511
분석된 줄 수
4
발견 사항
1
총 감사 수
중간 위험 문제 (1)
False Positive: Ruby/Shell Backtick Execution Detection
Static analyzer flagged 36 instances of 'external_commands' at various SKILL.md lines. These are FALSE POSITIVES - the skill contains TypeScript code examples using template literals (backticks) for teaching refactoring patterns. No actual shell execution occurs.
낮은 위험 문제 (3)
False Positive: Hardcoded URLs Detection
Static analyzer flagged 3 URLs in SKILL.md. These are FALSE POSITIVES - they are reference links to external books and resources in the documentation section (lines 471-473), not network requests made by the skill.
False Positive: Path Traversal Sequence Detection
Static analyzer flagged 3 path traversal sequences. These are FALSE POSITIVES - the paths '..//code-review/SKILL.md' and '..//backend/testing/SKILL.md' are relative links to related skills in the documentation (lines 483-484).
False Positive: Weak Cryptographic Algorithm Detection
Static analyzer flagged 6 instances of weak cryptographic algorithms. These are FALSE POSITIVES - no cryptographic code or algorithms exist in this skill. The detections appear to be misidentifications of other patterns.
감사자: claude

품질 점수

38
아키텍처
100
유지보수성
87
콘텐츠
40
커뮤니티
94
보안
91
사양 준수

만들 수 있는 것

Упростить длинные функции

У разработчика есть функция на 200 строк, которая делает слишком многое. Используйте Extract Method, чтобы разбить её на более мелкие, сфокусированные функции с понятными именами.

Удалить дублирующуюся логику

В кодовой базе одна и та же логика валидации повторяется в нескольких местах. Примените принцип DRY, чтобы вынести общую логику в переиспользуемые функции.

Улучшить объектно-ориентированный дизайн

Класс имеет несколько обязанностей, вызывая тесную связанность. Примените принципы SOLID, чтобы разделить ответственность на хорошо определённые классы.

이 프롬프트를 사용해 보세요

Базовый запрос на рефакторинг
Отрефакторь эту функцию, чтобы её было проще поддерживать. Примените шаблон Extract Method, чтобы разбить её на более мелкие, сфокусированные функции:
Удалить дублирование
Найди и удали дублирующийся код в этой кодовой базе. Примени принцип DRY, вынеся общую логику в переиспользуемые функции:
Применить принципы SOLID
Проанализируй этот класс и предложи, как применить принципы SOLID. Определи, какие принципы нарушены и как это исправить:
Рефакторинг с сохранением поведения
Я хочу отрефакторить этот код. Сначала помоги мне понять его текущее поведение (входы, выходы, побочные эффекты). Затем предложи изменения рефакторинга, которые сохраняют поведение, и расскажи, как проверить эти изменения:

모범 사례

  • Пишите тесты до рефакторинга, чтобы зафиксировать базовое поведение
  • Делайте небольшие, пошаговые изменения — по одному рефакторингу за раз
  • Запускайте тесты после каждого изменения, чтобы убедиться, что поведение сохранено
  • Используйте ясные, описательные имена для выделенных функций и переменных
  • Делайте коммит после каждого успешного рефакторинга для простого отката

피하기

  • Рефакторинг и одновременное добавление новых функций — сначала разделяйте ответственности
  • Пропуск тестов, потому что «изменение простое» — всегда проверяйте поведение
  • Создание уровней абстракции, которые добавляют сложность без явной пользы
  • Рефакторинг кода, который вы не понимаете — сначала проанализируйте поведение
  • Игнорирование влияния абстракций на производительность — при необходимости профилируйте

자주 묻는 질문

Что такое рефакторинг Extract Method?
Extract Method — это приём, когда вы берёте длинную функцию и разбиваете её на более мелкие, сфокусированные функции. Каждая новая функция имеет ясное имя, описывающее её назначение. Это улучшает читаемость и делает код проще для тестирования и сопровождения.
Как делать рефакторинг, не ломая функциональность?
Всегда пишите или запускайте тесты до рефакторинга, чтобы зафиксировать базовую линию. Делайте небольшие, пошаговые изменения. Запускайте тесты после каждого изменения. Убедитесь, что входы дают те же выходы до и после рефакторинга.
Когда следует применять принципы SOLID?
Применяйте принципы SOLID, когда замечаете код, который трудно менять, тестировать или расширять. Ищите классы со слишком большим количеством обязанностей, код, требующий изменений по нескольким причинам, или логику, которую трудно тестировать изолированно.
Что такое принцип DRY?
DRY означает Do Not Repeat Yourself. Это означает избегать дублирования логики в кодовой базе. Когда вы находите повторяющийся код, вынесите общую логику в одну переиспользуемую функцию или модуль.
Как понять, что рефакторинг завершён?
Рефакторинг завершён, когда: все тесты проходят, код легче понять, каждая функция имеет одну ответственность, нет дублирования, и код следует последовательным шаблонам.
Может ли этот навык автоматически рефакторить мой код?
Нет, этот навык предоставляет рекомендации, шаблоны и примеры для ручного рефакторинга. Он помогает понять, что делать и как делать это безопасно, но вы должны применить изменения сами и проверить их тестами.

개발자 세부 정보

파일 구조

📄 SKILL.md

📄 SKILL.toon