Skip to content
Back to skills

Code Refactoring

ASecurity

Clean code, SOLID prensipleri ve modern mühendislik pratikleri. Karmaşık kodu basitleştirmek, code smell'leri gidermek, testability artırmak istediğinde bu skill'i yükle.

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentstypescriptgorefactoring

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add natureco-official/natureco-cli --skill code-refactoring --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Refactoring?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Code Refactoring
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/natureco-official-code-refactoring/badge)](https://www.skillsdirectory.com/skills/natureco-official-code-refactoring)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: code-refactoring
description: Clean code, SOLID prensipleri ve modern mühendislik pratikleri. Karmaşık kodu basitleştirmek, code smell'leri gidermek, testability artırmak istediğinde bu skill'i yükle.
metadata: {"natureco": {"requires": {"bins": []}, "os": ["darwin","linux","win32"]}}
---

# Code Refactoring Skill

Clean code, SOLID design patterns ve modern yazılım mühendisliği ile kod kalitesini artır.

## Ne Zaman Kullan

- Karmaşık, bakımı zor kodu refactor etmek
- Duplikasyon, karmaşıklık, code smell azaltmak
- Testability ve tasarım tutarlılığı artırmak
- Modülleri yeni feature'ler için güvenle hazırlamak

**Kullanma:** tek satırlık fix, change freeze, sadece dokümantasyon isteği varsa.

## Talimatlar

1. **Code smell'leri değerlendir:** duplikasyon, uzun fonksiyon, yüksek coupling
2. **Refactor planı oluştur:** incremental adımlarla
3. **Küçük dilimler halinde uygula** — davranış sabit kalmalı
4. **Testleri güncelle** ve regression olmadığını doğrula

## Extract Method (Pattern)

```typescript
// ÖNCE
function processOrder(order: Order) {
  // validate
  if (!order.items.length) throw new Error('empty');
  // compute total
  let total = 0;
  for (const item of order.items) {
    total += item.price * item.quantity;
  }
  // save
  db.save({ orderId: order.id, total });
}

// SONRA
function processOrder(order: Order) {
  validateOrder(order);
  const total = computeTotal(order);
  saveOrder(order, total);
}
```

## SOLID Prensipleri

- **S**ingle Responsibility — bir sınıf/fonksiyon tek bir değişim nedeni olmalı
- **O**pen/Closed — extension için açık, modification için kapalı
- **L**iskov Substitution — alt sınıflar üst sınıfların yerine geçebilmeli
- **I**nterface Segregation — interface'ler küçük ve öz olmalı
- **D**ependency Inversion — abstraction'lara bağımlı, concrete'lere değil

## Code Smell Kategorileri

| Smell | Tedavi |
|-------|--------|
| Long Method (>30 satır) | Extract Method |
| Long Class | Extract Class |
| Duplicate Code | Extract Method → call from both |
| Long Parameter List (>4) | Parameter Object |
| Divergent Change | Extract Class (her değişim için bir sınıf) |
| Shotgun Surgery | Move Method, Move Field |
| Feature Envy | Move Method (kendi verisini kullanan sınıfa) |
| Data Clumps | Extract Class |
| Primitive Obsession | Replace Type Code with Class |
| Switch Statements | Replace Conditional with Polymorphism |
| Parallel Inheritance | Move Method/Field |
| Lazy Class | Inline Class |
| Speculative Generality | Collapse Hierarchy |
| Temporary Field | Extract Class |
| Message Chains | Hide Delegate |
| Middle Man | Remove Middle Man |
| Inappropriate Intimacy | Move Method, Extract Class |
| Alternative Classes with Different Interfaces | Rename Method, Move Method |
| Refused Bequest | Replace Inheritance with Delegation |
| Comments | Rename Method (kendi kendini açıklayan) |
| Duplicated Code | Extract Method |

## Output Format

```
## Issues
- <code smell 1>: <path:line>
- <code smell 2>: <path:line>

## Plan
1. <step 1: Extract Method from X to Y>
2. <step 2: Rename Z to W>
...

## Changes
- <path:line-range> — <change>

## Tests
- <verification step>
```

## Güvenlik

- External davranışı explicit onay olmadan değiştirme
- Diff'leri reviewable tut (küçük, atomic)
- Test'ler her zaman geçmeli

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…