O güne kadar debugger'ı kutsal araç gibi görürdüm. Breakpoint koy, adım adım ilerle, değişkenlere bak, standart süreç. Ama o sabah çalıştığım ortamda debugger çalışmıyordu. IDE bağlantısı kesik kalıyordu ve saatler geçip gidiyordu. Bir noktada elimde sadece console log ile debugging kalmıştı. Bug şuydu: belirli bir kullanıcı işlemi bazen başarıyla sonuçlanıyor, bazen sessizce başarısız oluyordu. Hata mesajı yok, exception yok. Sadece hiçbir şey olmuyordu. Loglara tek tek baktım. Hangi adımda "girdim" diyordu, hangi adımda duruyordu. Fonksiyonların başına ve sonuna log ekledim: "buraya geldim", "bu değeri aldım", "bu koşul doğru mu?" Ekran bir süre sonra log mesajlarıyla doldu. Console log ile debugging yaparken fark ettiğim bir şey var: kod akışını gerçekten okumak zorunda kalıyorsunuz. Debugger bazen sizi yönlendiriyor, bir sonraki adıma geçiyorsunuz ama tam olarak neden öyle davrandığını sindirmeden. Log'larla ise her satırın ne yaptığını kafanızda canlandırmak zorunda kalıyorsunuz. Neyse ki saatler sonra buldum. Asenkron bir fonksiyon bazen resolve olmadan bitiyordu ve bu durum hiçbir hata fırlatmıyordu. Log'lar sayesinde tam olarak hangi koşulda bu olduğunu görebildim. Console log ile debugging hafife alınan bir yöntem. Evet, debugger daha güçlü ama o gün yaşadığım deneyim bana şunu öğretti: temel araçlarla da ciddi bir analizin üstesinden gelebilirsiniz. Bazen en basit yöntem yeterince derine bakmanızı sağlar.