Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Problemi Daraltmak: Binary Search, git bisect run ve Delta Debugging
Hatayı bulmanın en hızlı yolu aralığı her adımda ikiye bölmektir: kodda, katmanlarda, commit'lerde ve girdide. git bisect run 31 commit'lik aralıkta derlenmeyen commit'i 125 ile atlayıp hatalı refactoring'i 7 denemede buluyor; ddmin algoritması 5.000 satırlık import dosyasını 3 satıra indiriyor.
Bug'ı Reproduce Etmek: Minimal Repro, Ortam Farkları ve Önce Kırmızı Test
Reproduce edemediğin bug'ı düzeltemezsin: önce kullanıcıdan doğru bilgiyi al, culture, timezone, configuration ve sürüm farklarını kontrol et, hatayı minimal repro'ya indir ve düzeltmeden önce kırmızı bir xUnit testi yaz. Container'da 1245'e dönüşen 12,45 ve iki satıra inen sipariş toplamı hatası gerçek çıktılarla.
Debugging Bir Yöntemdir: Gözlem, Hipotez, Deney ve 9 Altın Kural
Debugging tahminle değil yöntemle yapılır: gözlem, test edilebilir hipotez, tahmin, deney ve sonuç döngüsü. 1 kuruşluk sipariş toplamı farkıyla başlayan vakada Agans'ın 9 kuralını, shotgun debugging'in maliyetini ve debugging günlüğünü gerçek çıktılarla anlatıyoruz.