-
David A. Wheeler'ın incelemesi
- David J. Agans'ın "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems" adlı eseri, yazılım ve donanım geliştiricileri için vazgeçilmez bir debugging kitabı olarak değerlendiriliyor.
- Kitap, belirli bir teknolojiye değil, bug bulma ve düzeltmenin temel ilkelerine odaklanıyor; özellikle yeni başlayanlar ve orta seviyedeki geliştiriciler için faydalı.
- İçerik, "dokuz kural" etrafında yapılandırılmış ve her kuralın açıklamasıyla nasıl uygulanacağını ele alıyor.
-
Dokuz kural
- Sistemi anlamak: Kılavuzları okumak, temelleri kavramak ve araçları iyi kullanmak önemli.
- Hatayı tetiklemek: Hatanın yeniden üretilmesi ve aralıklı bug'ların nedeninin bulunması önemli.
- Düşünmeyi bırakıp gözlemlemek: Önce veri toplayın, tahminlere dayanmayın.
- Böl ve yönet: Sorunu daraltarak çözün ve kolayca ayırt edilebilen test kalıpları kullanın.
- Aynı anda yalnızca bir şeyi değiştirmek: Temel unsurları izole edin ve testlerde tek seferde tek değişiklik yapın.
- Denetim kaydı tutmak: Yapılan işleri ve sonuçları kaydedin; tüm ayrıntıların önemli olabileceğini unutmayın.
- Fişi kontrol etmek: Varsayımları sorgulayın ve araçları test edin.
- Yeni bir bakış açısı kazanmak: Yeni içgörüler edinmek ve tecrübenin sesine kulak vermek önemlidir.
- Düzeltilmediyse düzelmemiştir: Sorunun gerçekten çözülüp çözülmediğini doğrulayın ve kök nedeni düzeltin.
-
Kitabın güçlü ve zayıf yönleri
- Kitap, debugging'in temel ilkelerine odaklanarak diğer teknik kitaplardan ayrışıyor.
- Aralıklı sorunlarla nasıl başa çıkılacağına dair pratik tavsiyeler içeriyor.
- Ekler bölümünde ilgili web siteleri ve poster indirme bağlantıları yer alıyor.
- Eksik yönleri arasında, tüm kuralları ve alt kuralları tek sayfada toplayan bir listenin olmaması ve belirli teknolojilere dair somut önerilerin sınırlı kalması bulunuyor.
-
Sonuç
- Bu kitap, debugging'in temel ilkelerini öğrenmek veya hatırlamak için yararlı; hem yeni başlayanlara hem de uzmanlara yardımcı oluyor.
- David A. Wheeler kitabı güçlü biçimde tavsiye ediyor ve temel ilkelerin önemini vurguluyor.
1 yorum
Hacker News görüşleri
Hatalı kodu düzeltme cazibesi büyüktür, ancak çalışan kodu bozmak, bozuk kodu düzeltmekten daha kolaydır. Noel ışıkları örneğinde olduğu gibi, sorunu bulmak için en küçük çalışan örnekle başlamak etkilidir
Sorun çözerken önemli olan panik yapmamaktır. Net düşünmek gerekir ve iyi bir yönetici, sorun çözmeye odaklanabilmeniz için destek olur
git bisect, birçok commit arasından soruna yol açan commit'i bulmak için kullanışlıdır. Özellikle büyük kod tabanlarında sorunu hızlıca bulmaya yardımcı olurSistemi anlamak önemlidir, ancak tüm kılavuzları okumak gerçekçi değildir. Pratik bir yaklaşım gerekir
Doğru dosyayı doğru makinede düzenlemek önemlidir
Sorun çözme zihniyetini geliştirmek için önerilen kitaplar:
Ek kurallar:
Regression'ı önlemek için bug'ı CI'a test olarak eklemek gerekir. Düzeltmeden önce ve sonra CI'ın başarısız olup başarılı olduğunu doğrulamak gerekir
Debugging'den sonra da iş bitmiş sayılmaz. Her bug için üç soru sormak gerekir:
Sorunu en az kurulumla yeniden üretmek önemlidir. Çoğu durumda bug bu şekilde bulunabilir. Kodun yarıya bölünerek tam olarak hangi kısmın hatalı olduğunun bulunması etkili olur