Geçenlerde eski bir projeye, müşteri yeni bir özellik istedi diye döndüm. Proje dosyasını açtığım an, sanki zaman makinesine binip geçmişteki benimle yüzleştim. Ve arkadaşlar, o andaki duygu tam olarak şuydu: "Vay be, geçmişteki ben, seni seviyorum!" Neden mi? Çünkü o dönem, "şimdi çalışıyor ya, bırak" diyen iç sesimi dinlemeyip, temiz kod yazmak için ekstra 3-4 saat harcamıştım.
God Class'lar yoktu. Her şeyi yapan tek bir canavar sınıf yerine, küçük, sorumlulukları belli modüller vardı. Helper diye başlayan ama içinde dünyayı döndüren 500 satırlık fonksiyonlar yoktu. Değişken isimleri a, b, x değil, userCartTotal, isPaymentValid gibi şeylerdi. Ve en önemlisi, yorum satırları... Sadece "neler oluyor"u değil, "neden böyle yapıldı"yı da açıklıyorlardı.
Mesela, o zaman canımı sıkan bir kısım vardı:
JavaScript:
// Neden böyle? Çünkü API, tarihi UTC olarak gönderiyor ama bizim sunucu zaman diliminde kaydediyor.
const adjustedDate = moment(apiDate).utcOffset('+0300');
Altı ay önce bu yoruma "gereksiz" diye düşünmüştüm. Altı ay sonra, bu satırı görür görmez hatırladım ve yeni entegrasyonda aynı hatayı 10 dakikada çözdüm.
Ve işte o an geldi. Müşteri, mevcut ödeme akışına yeni bir adım eklemek istedi. Normalde, karmaşık, iç içe geçmiş bir koda böyle bir müdahale saatler sürerdi. Ama ben? Kodda nerede ne olduğunu hemen anladım. PaymentProcessor sınıfını buldum, içindeki validate() metoduna yeni kuralı, mevcut yapıyı bozmadan ekledim. Yeni özelliği, tahmini 1 gün yerine 2 saatte tamamladım.
O ekstra temizlik için harcadığım saatler, bana o gün en az 6 saat kazandırdı. Üstelik stres yapmadan, kafamda kod karmaşası olmadan. Bu, en net yatırım getirisiydi.
Şunu anladım: Temiz kod yazmak, gelecekteki sen için bir mektup yazmaktır. O mektupta ne kadar net, düzenli ve açıklayıcı olursan, gelecekteki sen o kadar mutlu olur. "Çalışıyorsa dokunma" mantığı, kısa vadeli bir kaçış. Uzun vadede, o dokunulmaz koda dönüp baktığında yaşayacağın dehşet, o ilk baştaki tembelliğinden çok daha ağır.
Peki ya siz? Hiç geçmişteki bencil bir temiz kod sayesinde kurtuldunuz mu? Yoksa düzensiz bir kod yığınına dönüp "Bu ne lan?" diye içinizden küfür ettiniz mi? Yorumlara yazın, dertleşelim.