Install this agent skill to your local

pnpm dlx add-skill https://github.com/vuralserhat86/antigravity-agentic-skills/tree/HEAD/skills/refactoring_patterns

Skill Files

Browse the full folder contents for refactoring_patterns.

Download Skill

Loading file tree…

skills/refactoring_patterns/SKILL.md

Skill Metadata

Name
refactoring_patterns
Description
Common refactoring patterns - Extract, Rename, Move ve code smell çözümleri.

🔄 Refactoring Patterns

Common refactoring patterns ve code smell çözümleri.


🎯 Altın Kural

Davranışı DEĞİŞTİRME, sadece yapıyı iyileştir

Before: Input X → [Code A] → Output Y
After:  Input X → [Code B] → Output Y (AYNI!)

🔍 Code Smells

| Smell | Çözüm | |-------|-------| | Long Method | Extract Method | | Large Class | Extract Class | | Duplicate Code | Extract + Reuse | | Long Parameter List | Parameter Object | | Feature Envy | Move Method | | Data Clumps | Extract Class |


📦 Extract Method

// ❌ Before
function processOrder(order) {
  // 20 lines of validation
  // 30 lines of calculation
  // 15 lines of formatting
}

// ✅ After
function processOrder(order) {
  validateOrder(order);
  const total = calculateTotal(order);
  return formatOutput(total);
}

🔄 Replace Conditional with Polymorphism

// ❌ Before
function getPrice(type) {
  if (type === 'premium') return 100;
  if (type === 'basic') return 50;
  return 30;
}

// ✅ After
const pricing = { premium: 100, basic: 50, free: 30 };
const getPrice = (type) => pricing[type] ?? 30;

Refactoring Patterns v1.1 - Enhanced

🔄 Workflow

Kaynak: Refactoring.guru & Martin Fowler - Refactoring

Aşama 1: Preparation (Safety First)

  • [ ] Red-Green-Refactor: Testin var mı? Yoksa önce test yaz ("Characterization Tests"), sonra refactor et.
  • [ ] Small Steps: Değişiklikleri atomik commitler halinde yap. Her adımda testleri çalıştır.
  • [ ] Backup: VCS (Git) üzerinde temiz bir dalda çalış.

Aşama 2: Applying Patterns

  • [ ] Simplification: Karmaşık koşulları Decompose Conditional veya Replace Nested Conditional with Guard Clauses ile basitleştir.
  • [ ] Abstraction: Extract Method ve Extract Class ile sorumlulukları (SRP) ayır. Primitive Obsession varsa Value Object'e çevir.
  • [ ] Modernization: var -> const/let, for -> map/filter, Callback -> Async/Await dönüşümlerini uygula (Dil özelliklerini kullan).

Aşama 3: Verification & Cleanup

  • [ ] Regression Testing: Mevcut fonksiyonların bozulmadığını doğrula.
  • [ ] Dead Code: Kullanılmayan kodları (Dead Code) acımasızca sil. Yorum satırına alma, sil (Git geçmişinde var zaten).
  • [ ] Naming: Değişken ve fonksiyon isimlerini, kodun ne yaptığını değil "neden" yaptığını anlatacak şekilde güncelle.

Kontrol Noktaları

| Aşama | Doğrulama | |-------|-----------| | 1 | Refactoring sırasında yeni özellik eklendi mi? (KESİNLİKLE HAYIR. İki şapka kuralı: Ya Refactor yap ya Feature ekle). | | 2 | Kodun okunabilirliği arttı mı? (Cognitive Complexity düştü mü?). | | 3 | Test kapsamı (Coverage) korundu mu? |