Kod bir kez yazılır, onlarca kez okunur. Altı ay sonra kendi yazdığınız koda baktığınızda "bunu kim yazmış?" diyorsanız yalnız değilsiniz. Temiz kod; başka bir geliştiricinin (ya da gelecekteki sizin) kodu hızla anlayıp güvenle değiştirebilmesi demektir. Yazılım dünyasında araçlar sürekli değişse de bu ilke yıllardır geçerliliğini koruyor.
Temiz kod neden önemli?
Bir yazılımın toplam maliyetinin büyük kısmı ilk geliştirmeden sonra, bakım ve yeni özellik ekleme sırasında harcanır. Okunması zor kod; her değişikliği yavaşlatır, hata riskini artırır ve sonunda teknik borca dönüşür.
Okunabilir kodun 10 kuralı
- Anlamlı isimler kullanın.
dyerinegecikmeGunSayisi. Ayrıntılar için isimlendirme kuralları. - Fonksiyonlar tek bir iş yapsın. "Ve" ile anlatılan bir fonksiyon büyük ihtimalle bölünmelidir.
- Fonksiyonları kısa tutun. Ekrana sığmayan bir metot, okuyucunun aklına da sığmaz.
- İç içe koşulları azaltın. Erken dönüş (guard clause) ile girinti seviyesini düşürün.
- Sihirli sayılardan kaçının.
if (durum == 3)yerineif (durum == SiparisDurumu.Kargoda). - Yorumu "neden" için yazın. Kod ne yaptığını anlatmalı; yorum, neden öyle yapıldığını açıklamalı.
- Tekrarı azaltın ama erken soyutlamayın. Bkz. DRY, KISS ve YAGNI.
- Hataları yutmayın. Boş
catchblokları sorunları gizler. Bkz. hata yönetimi. - Tutarlı biçim kullanın. Ekipçe bir kod biçimlendirici ve stil kuralı belirleyin.
- Test yazın. Testi kolay yazılan kod, genellikle iyi tasarlanmış koddur.
Küçük bir örnek
// Önce
public decimal Hesapla(Siparis s)
{
if (s != null)
{
if (s.Kalemler.Count > 0)
{
var t = s.Kalemler.Sum(k => k.Fiyat * k.Adet);
if (s.Musteri.Tip == 2) t = t * 0.9m;
return t;
}
}
return 0;
}
// Sonra
public decimal ToplamTutar(Siparis siparis)
{
if (siparis is null || siparis.Kalemler.Count == 0) return 0;
var araToplam = siparis.Kalemler.Sum(k => k.Fiyat * k.Adet);
return siparis.Musteri.BayiMi ? araToplam * BayiIndirimCarpani : araToplam;
}
İkinci sürüm daha kısa değil belki, ama ne yaptığı ilk okumada anlaşılıyor.
Temiz kod bir hedef değil, alışkanlıktır
Mükemmel kod yazmaya çalışmak yerine "bulduğundan biraz daha temiz bırak" ilkesini benimseyin. Her dokunuşta küçük bir iyileştirme yapmak, büyük yeniden yazımlardan çok daha etkilidir. Bunun nasıl güvenle yapılacağı refactoring yazısında anlatılıyor.
Sık sorulan sorular
Temiz kod performanstan ödün vermek mi demek?
Çoğu durumda hayır. Okunabilir kodun ölçülebilir bir performans sorunu varsa, o noktada optimize edilir. Erken optimizasyon genellikle okunabilirliği bozar ama hız kazandırmaz.
Yapay zekâ ile yazılan kod temiz mi?
Değişir. Üretilen kodun da aynı standartlarla gözden geçirilmesi gerekir. Bkz. AI ile kod yazarken kod kalitesi.
Sonuç
Temiz kod, ekibe ve geleceğe gösterilen saygıdır. Okunabilir, küçük parçalardan oluşan ve testle korunan kod; yazılımın yıllarca ucuz ve güvenli şekilde gelişmesini sağlar.