Bir kod parçası bilgisayar için sadece bir kez derlenir; ama insanlar tarafından defalarca okunur. Yazıldıktan bir hafta sonra bir hatayı aramak için, altı ay sonra yeni bir özellik eklemek için, iki yıl sonra hiç tanımadığınız bir geliştirici tarafından. İşte temiz kodun bütün felsefesi bu gerçeğe dayanır: kod, çalışması kadar okunabilir olmak zorundadır. Çalışan ama okunamayan kod, teknik borcun (technical debt) en sinsi biçimidir. Bu yazıda temiz kodun somut ilkelerini, kuru öğütler yerine gerçek örneklerle ele alıyoruz.

Temiz Kod Neden Bir Lüks Değil, Zorunluluktur?
Yazılım maliyetlerinin büyük çoğunluğu ilk yazımda değil, bakım aşamasında oluşur. Bir kod tabanına ne kadar süre dokunursanız, o kodun okunabilirliği o kadar önem kazanır. Okunması zor kod, her değişikliği yavaşlatır, her hatayı gizler ve zamanla ekibin o bölgeye dokunmaktan korkmasına yol açar. Temiz kod ise tam tersine, değişimi ucuzlatır.
Kodun ilk kez çalışması bir başarı değil, sadece başlangıçtır. Asıl ustalık, o kodun altı ay sonra kolayca değiştirilebilmesinde saklıdır.
Anlamlı İsimler: Yorumdan Önce Gelir
İyi bir isim, bir yoruma olan ihtiyacı ortadan kaldırır. Değişkenler, fonksiyonlar ve sınıflar ne yaptıklarını adlarıyla anlatmalıdır.
// Kötü
$d = 30; // gün sayısı
function calc($a, $b) { return $a * $b; }
// İyi
$kalanGunSayisi = 30;
function toplamTutarHesapla($birimFiyat, $adet) {
return $birimFiyat * $adet;
}
İkinci örnekte hiçbir yoruma gerek kalmaz; kod kendini anlatır. İsimlendirme o kadar önemlidir ki başlı başına bir disiplindir.
Küçük ve Tek İşe Odaklı Fonksiyonlar
Bir fonksiyon tek bir şey yapmalı ve onu iyi yapmalıdır. Ekranı kaydırmadan tamamını görebildiğiniz fonksiyonlar hem test edilmesi hem anlaşılması kolay olur. Bir fonksiyon "önce bunu yapar, sonra şunu, bir de ayrıca şunu..." diye anlatılıyorsa, muhtemelen birkaç fonksiyona bölünmelidir.
- Bir fonksiyonun tek bir sorumluluğu olsun.
- Parametre sayısını mümkün olduğunca düşük tutun; üçten fazlası çoğu zaman bir tasarım kokusudur.
- Fonksiyonun içinde birden fazla soyutlama düzeyi karışmasın.
Yorumlar: Ne Değil, Neden
İyi kod, "ne yaptığını" isimleriyle anlatır; yorumlar ise "neden öyle yapıldığını" açıklamak için vardır. Kodun ne yaptığını tekrar eden yorumlar gürültüdür ve zamanla yanıltıcı hale gelir çünkü kod değişir, yorum unutulur.
// Kötü yorum (kodun aynısını tekrar ediyor):
$i++; // i'yi bir artır
// İyi yorum (nedeni açıklıyor):
// Ödeme sağlayıcısı ilk denemede %2 oranında zaman aşımı
// verdiği için tek bir yeniden deneme yapıyoruz.
$this->odemeyiTekrarDene();

Tekrardan Kaçının, Ama Erken Soyutlamayın
Aynı kodu üç yerde kopyalamak, ileride üç yeri birden güncellemeyi unutmanız demektir. Ortak mantığı tek bir yerde toplamak sürdürülebilirliğin temelidir. Ancak dengeyi de gözetmek gerekir: henüz gerçekten tekrar etmeyen bir şeyi "belki lazım olur" diye soyutlamak, gereksiz karmaşıklık üretir. Önce tekrarı görün, sonra soyutlayın.
Tutarlılık: Ekibin Ortak Dili
Temiz kodun en az konuşulan ama en güçlü ilkelerinden biri tutarlılıktır. Bir projede aynı işi beş farklı şekilde yapmak, her dosyayı bir sürprize çevirir. Kodlama standartları, dosya düzeni, isimlendirme biçimi ve hata yönetimi projede tutarlı olduğunda, geliştirici zihinsel enerjisini "bu bölge nasıl yazılmış" sorusuna değil asıl probleme harcar.
- Bir kodlama standardı belirleyin ve otomatik araçlarla (linter, formatter) uygulayın.
- Aynı problemin projede tek bir çözüm biçimi olsun.
- Yeni gelen bir geliştiricinin kod tabanına bakınca "bir düzen var" hissetmesini sağlayın.
Hata Yönetimini Gizlemeyin
Temiz kod, hataları sessizce yutmaz. Yakalanan ama hiçbir şey yapılmayan istisnalar (silent catch), en zor bulunan hataların kaynağıdır. Hatayı ya anlamlı biçimde ele alın ya da üst katmana bilgilendirici bir mesajla iletin. Kullanıcıya "bir şeyler ters gitti" derken, geliştiriciye gerçekte ne olduğunu bırakmak gerekir.
Temiz kod yazmak yetenek değil, alışkanlıktır. Her gün küçük özenlerle kurulur ve her gün küçük ihmallerle çürür.
Berasoft'ta Temiz Koda Bakış
Müşterilerimize özel yazılım geliştirirken, projeyi biz teslim etsek de kodun onlara ait olduğunu unutmayız. Bir gün başka bir ekip bu koda dokunabilir; o yüzden okunabilirlik ve tutarlılık bizim için pazarlık konusu değildir. Kod incelemesi, ortak standartlar ve anlamlı isimlendirme, teslim ettiğimiz her projenin sessiz kalitesidir.
Sonuç
Temiz kod, akıllıca numaralar sergilemek değil; bir sonraki okuyucuya saygı göstermektir. Anlamlı isimler, küçük fonksiyonlar, doğru yorumlar, tekrardan kaçınma ve tutarlılık; bunların toplamı, bakımı ucuz ve büyümeye dayanıklı bir kod tabanı üretir. Yazılım uzun bir yolculuktur ve temiz kod, o yolda hız kaybetmeden ilerlemenin en güvenilir yoludur. Sürdürülebilir bir kod tabanı üzerine kurulmuş bir projeye ihtiyacınız varsa projenizi konuşalım.
Bir sonraki projeniz için hazır mısınız?
Okuduklarınızı işinize uygulamak veya dijital dönüşümünüzü konuşmak isterseniz, ekibimiz bir mesaj uzağınızda.

Yorum Yap