Ana içeriğe atla

Debugging, sadece kod hatalarını bulmak değil, sistematik bir problem çözme sürecidir. Bu kılavuz, etkili debug yaklaşımları ve araçlarını açıklar.

Temel Prensipler

  • Reproduce first: Hatayı güvenilir şekilde tekrarlayamıyorsan, çözmekte zorlanırsın
  • Bir şeyi değiştir: Aynı anda birden fazla değişiklik yapma
  • Assume nothing: Varsayımlarını sorgula, her şeyi doğrula
  • Binary search: Problemi ikiye bölerek daralt
  • Read the error: Hata mesajını gerçekten oku, varsayma

Debug Süreci

AdımAçıklama
1. ReproduceHatayı tutarlı şekilde tekrarla
2. IsolateProblemi en küçük örneğe daralt
3. HypothesizeOlası nedenleri listele
4. TestHipotezleri test et
5. FixKök nedeni düzelt
6. VerifyDüzeltmenin çalıştığını doğrula
7. PreventGelecekte oluşmasını engelle

Yaygın Debug Teknikleri

Print/Log Debugging

  • Stratejik noktalara log ekle
  • Değişken değerlerini, akış durumunu logla
  • Log seviyelerini doğru kullan (debug, info, error)
  • Production'da temizlemeyi unutma veya feature flag kullan

Debugger Kullanımı

  • Breakpoint koy, adım adım ilerle
  • Watch expressions ile değişkenleri izle
  • Call stack'i incele
  • Conditional breakpoint: sadece belirli koşulda dur

Rubber Duck Debugging

Problemi birine (veya bir lastik ördeğe) sesli anlat. Anlatırken çoğu zaman çözümü bulursun.

Araçlar

AraçKullanım
VS Code DebuggerFrontend/Backend debugging
Chrome DevToolsFrontend, network, performance
Postman/InsomniaAPI debugging
pgAdmin/DBeaverDatabase debugging
Datadog/GrafanaProduction observability
SentryError tracking

Production Debugging

  • Logları incele (Datadog, CloudWatch)
  • Metrics'e bak (latency spike, error rate)
  • Traces ile akışı takip et
  • Değişen bir şey var mı? (deploy, config, traffic)
  • Canary/staging'de reproduce etmeye çalış

Production'da debug yaparken dikkatli ol. Read-only operasyonlar tercih et, değişiklik yapmadan önce düşün.

Zor Buglar İçin

  • Ara ver, yürüyüşe çık (subconscious processing)
  • Başka birine anlat (pair debugging)
  • Git blame: bu kod ne zaman, neden değişti?
  • Similar issues: daha önce benzer bir şey yaşanmış mı?
  • Sleep on it: sabah taze bakışla bak