Kafayı yiyecektim arkadaş. Bir fonksiyonu debug ediyorum, iki saat geçiyor ve hala "temp", "data", "value" gibi değişkenlerin arasında boğuluyorum. Meğerse sorun, x değişkeninin aslında kullanici_id olması gerektiği yerde siparis_id tutmasıymış. Şaka gibi ama, kodu 3 ay önce ben yazmışım!
Bir gün dedim ki, "Ya bu debug süresinin yarısı, kodu anlamaya çalışmakla geçiyor." Clean Code diye bir şey duymuştum, açtım baktım. İsimlendirme üzerine koca bölüm. İlk başta "Abartıyorlar" dedim ama denemeye karar verdim.
Artık temp yerine filtrelenmemis_urun_listesi yazıyorum. data yerine cekilen_kullanici_verisi. Fonksiyon isimlerini fiil gibi yazıyorum: veritabani_baglantisini_kur() gibi.
Python:
# Eskiden:
d = db.q("SELECT FROM u")
for x in d:
print(x.n)
# Şimdi:
kullanicilar = veritabani_sorgusu_calistir("SELECT FROM kullanicilar")
for kullanici in kullanicilar:
print(kullanici.adi)
İnanın, ilk başta daha uzun sürüyor gibi geliyor. Ama uzun vadede kazandırıyor. Bug bir hata aldığımda, stack trace'te gördüğüm değişken isminden bile hatanın nerede olabileceğini anlayabiliyorum. "Ah, gecersiz_eposta_adresi listesi boş gelmiş, onu kontrol etmemişim" diyebiliyorum. StackOverflow'da bile aradığım şeyi daha net buluyorum.
Kod review'lerinde de "Bu ne?" sorusu yerine, direkt "Bu mantık doğru mu?" sorusuna geçebiliyoruz.
Siz de değişken ve fonksiyon isimlerine biraz daha takılarak yazmayı denediniz mi? Yoksa "Çalışıyor ya, yeter" diyerek a, b, c yazmaya devam mı ediyorsunuz? Bu konudaki taktikleriniz neler?