🛡️ Refactoring Strategies

← Back to skills

> Safe refactoring süreci ve incremental değişiklikler.

Category: Development Tools
Repo: vuralserhat86-antigravity-agentic-skills
Path: skills/refactoring_strategies/SKILL.md
Updated: 1/3/2026, 12:20:04 PM

AI Summary

> Safe refactoring süreci ve incremental değişiklikler. It is useful for IDE workflows, linting and formatting, debugging, code review, and developer productivity. Source: vuralserhat86-antigravity-agentic-skills (skills/refactoring_strategies/SKILL.md).

🛡️ Refactoring Strategies

Safe refactoring süreci ve incremental değişiklikler.


⏰ Ne Zaman Refactor?

SinyalAksiyon
Code SmellRefactor et
Before featureZemin hazırla
After bug fixKodu iyileştir

❌ Ne Zaman YAPMA

  • Deadline çok yakın
  • Test coverage düşük
  • Sistemi anlamadan

🔒 Güvenlik Ağı

// Önce mevcut davranışı test et
describe('calculateTotal', () => {
  test('single item', () => {
    expect(calculateTotal([{ price: 100, qty: 1 }])).toBe(100);
  });
  
  test('multiple items', () => {
    expect(calculateTotal([
      { price: 100, qty: 2 },
      { price: 50, qty: 1 }
    ])).toBe(250);
  });
  
  test('empty array', () => {
    expect(calculateTotal([])).toBe(0);
  });
});

📊 Incremental Strategy

  1. Test yaz → Mevcut davranışı belgele
  2. Küçük değişiklik → Tek bir şeyi değiştir
  3. Test çalıştır → Hala geçiyor mu?
  4. Commit → Küçük, atomik commit
  5. Tekrarla

✅ Checklist

  • Testler geçiyor
  • Davranış değişmedi
  • Küçük commit'ler
  • Feature ile karıştırma

Refactoring Strategies v1.1 - Enhanced

🔄 Workflow

Kaynak: Working Effectively with Legacy Code & Refactoring to Patterns

Aşama 1: Safety Net (Test First)

  • Characterization Tests: Kodun "ne yapması gerektiğini" değil, "ne yaptığını" doğrulayan testler yaz.
  • Golden Master: Çıktının değişmediğini garanti etmek için büyük ölçekli snapshot testleri al.
  • Coverage: Refactor edilecek bölgenin coverage'ını %100'e getirmeden dokunma.

Aşama 2: Strategic Patterns

  • Strangler Fig: Eski sistemi bir anda değiştirmek yerine, yeni özellikleri "boğarak" (çevreleyerek) yavaş yavaş yerine geçir.
  • Parallel Change: Eski ve yeni kodu bir süre paralel çalıştır (Feature Flag ile), emin olunca eskiyi sil.
  • Branch by Abstraction: Kodun arasına bir interface (API) katmanı koy, arkasındaki implementasyonu değiştir.

Aşama 3: Lifecycle Management

  • Deprecation: Eski API'leri @deprecated olarak işaretle ve loglara uyarı bas.
  • Monitoring: Refactor sonrası error rate ve latency'yi izle.
  • Kill Switch: Feature Flag ile eski koda saniyeler içinde dönebilme imkanı sağla.

Kontrol Noktaları

AşamaDoğrulama
1Test paketi 2 dakikanın altında çalışıyor mu? (Hızlı feedback).
2Veritabanı şeması değişiyor mu? (Migration planı var mı?).
3Rollback planı test edildi mi?

Related skills