Ulu Önder Mustafa Kemal Atatürk'ü aramızdan ayrılışının 88. yılında saygı, minnet ve özlemle anıyoruz.

Hata ayıklama (debugging) yöntemleri: print'ten breakpoint'e

kaan.yildiz Mid 2 saat önce · 1 görüntülenme

Bir hatayı bulmak çoğu zaman düzeltmekten daha uzun sürer. Aşağıdaki yöntemler dilden bağımsızdır ve "kodu rastgele değiştirip dene" döngüsünden çıkmanı sağlar.

1. Önce hatayı tekrar üret

Tekrar üretemediğin hatayı düzelttiğinden emin olamazsın. Şunları not et:

  • Hangi girdiyle, hangi adımlarla oluyor?
  • Her seferinde mi, ara sıra mı?
  • Sadece bir ortamda mı (yerelde değil de sunucuda gibi)?

Ara sıra çıkan hatalar genellikle zamanlama (eş zamanlılık), önbellek ya da ortam farkından kaynaklanır.

2. Hata mesajını sonuna kadar oku

Yığın izinin (stack trace) en üstü hatanın fırlatıldığı yerdir, ama sebebi çoğu zaman biraz aşağıda, senin kodunun ilk göründüğü satırdadır. Kütüphane satırlarını atla, kendi dosyanı bul.

3. Aralığı daralt

  • İkiye bölme: Kodun yarısını devre dışı bırak, hata devam ediyor mu? Etmiyorsa sorun kapattığın yarıdadır.
  • git bisect: "Dün çalışıyordu" diyorsan hangi commit'in bozduğunu otomatik bulur:
git bisect start
git bisect bad            # şu anki sürüm bozuk
git bisect good a1b2c3d   # bu commit'te çalışıyordu
# Git her adımda bir commit açar, test edip good/bad dersin
git bisect reset

4. print/log doğru kullanıldığında yeterlidir

Değişkeni basmak yerine beklentini de yaz:

print(f"[sepet] urun_sayisi={len(sepet)} beklenen=3 toplam={toplam}")

Etiketli çıktı, onlarca satır arasında aradığını bulmanı kolaylaştırır. İş bitince bu satırları silmeyi unutma ya da kalıcı olması gerekiyorsa gerçek bir log kütüphanesi kullan (seviyeli: debug, info, warning, error).

5. Breakpoint ile adım adım ilerle

VS Code, JetBrains IDE'leri ve tarayıcı geliştirici araçlarında satır numarasının soluna tıklayarak breakpoint koyabilirsin. Program orada durur ve:

  • Step over: Satırı çalıştırıp bir sonrakine geç.
  • Step into: Çağrılan fonksiyonun içine gir.
  • Watch: Bir ifadenin değerini sürekli izle.
  • Koşullu breakpoint: Sadece id == 42 olduğunda dur. Döngü içindeki hatalarda çok işe yarar.

6. Lastik ördek yöntemi

Kodu satır satır, sesli olarak (ya da bir foruma soru yazarken) anlat. "Bu satır şunu yapıyor... aslında yapmıyor" dediğin an çoğu hata bulunur. Soru yazarken çözümü kendin bulursan bu yöntem çalışmış demektir.

7. Düzelttikten sonra

  • Hatayı tekrar üreten bir test yaz, böylece geri dönmez.
  • Sebebi commit mesajına kısaca yaz.
  • Aynı kalıbın kodun başka yerinde olup olmadığına bak.

Sizin en çok işe yarayan hata ayıklama alışkanlığınız ne? Paylaşırsanız listeye ekleyelim.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi
  • Açılış10.11.2026
  • Son etkinlik1 saat önce
  • Cevap0
  • Görüntülenme1
  • Beğeni0
Yeni konu aç