Yazılım & Kodlama

Kodda Anlamlı İsimlendirme: Yazılımın En Az Konuşulan Süper Gücü

İyi bir isim, sayfalarca yorumun yerini tutar. Değişken, fonksiyon ve sınıf isimlerini nasıl seçeceğinizi, hangi tuzaklardan kaçınacağınızı ve isimlendirmenin neden bu kadar önemli olduğunu örneklerle anlatıyoruz.

Kodda Anlamlı İsimlendirme: Yazılımın En Az Konuşulan Süper Gücü

Bilgisayar bilimlerinde meşhur bir şaka vardır: "Yazılımda gerçekten zor olan iki şey vardır; önbellek geçersizleştirme ve isim vermek." Bu şaka gerçek bir sıkıntıyı işaret eder. Bir değişkene, fonksiyona veya sınıfa isim vermek dünyanın en basit işi gibi görünür; oysa iyi isimlendirme, temiz kodun belki de en çok göz ardı edilen ve en çok fark yaratan disiplinidir. İyi bir isim, sayfalarca yorumun ve dokümantasyonun yerini tutar. Bu yazıda anlamlı isimlendirmenin kurallarını, tuzaklarını ve neden bu kadar önemli olduğunu ele alacağız.

Kodda Anlamlı İsimlendirme: Yazılımın En Az Konuşulan Süper Gücü
API tasarımı ve geliştirme

İsim, Kodun Birincil Dokümantasyonudur

Kod okuyan biri, önce isimleri okur. Bir fonksiyonun ne yaptığını anlamak için içine girmeden önce adına bakar; bir değişkenin ne tuttuğunu anlamak için tanımını değil kullanımını görür. İyi isimler, kodu bir metin gibi akıcı okunabilir kılar. Kötü isimler ise her satırda okuyucuyu durdurup "acaba bu neydi?" diye düşündürür.

Bir değişkenin adını okuyup ne olduğunu anlayabiliyorsanız, o kod iyi yazılmıştır. Adına bakıp tanımını aramak zorunda kalıyorsanız, isim görevini yapmamıştır.

Anlamlı ve Amaç Açıklayan İsimler

İyi bir isim, "ne olduğunu" ve "neden var olduğunu" anlatır. Kısaltmalardan, tek harflik değişkenlerden (döngü sayaçları gibi çok sınırlı istisnalar hariç) ve gizemli sayılardan kaçının.

// Kötü
$l = [];
foreach ($u as $x) {
    if ($x->s == 1) { $l[] = $x; }
}

// İyi
$aktifKullanicilar = [];
foreach ($kullanicilar as $kullanici) {
    if ($kullanici->aktifMi()) {
        $aktifKullanicilar[] = $kullanici;
    }
}

İkinci sürüm daha uzun ama okumak için hiç düşünmüyorsunuz; kod kendini anlatıyor.

Fonksiyon İsimleri Fiil, Sınıf İsimleri İsim Olsun

Bir fonksiyon bir eylem gerçekleştirir; bu yüzden adı bir fiille başlamalıdır: hesapla, gonder, dogrula, getir. Bir sınıf ise bir varlığı temsil eder; bu yüzden adı bir isim olmalıdır: Siparis, Fatura, OdemeServisi. Boolean değer döndüren fonksiyonlar ise soru gibi okunmalıdır: aktifMi, gecerliMi, izinVarMi.

  • Fonksiyon: fiil veya fiil öbeği (faturaOlustur)
  • Sınıf: tekil isim (Fatura)
  • Boolean: soru biçimi (odendiMi)
  • Koleksiyon: çoğul isim (siparisler)

Tutarlılık: Aynı Kavram, Aynı Kelime

Bir projede aynı kavram için farklı kelimeler kullanmak, okuyucuyu şaşırtır. Bir yerde "getir", başka yerde "al", bir başka yerde "cek" kullanılıyorsa, okuyucu bunların farklı şeyler olup olmadığını merak eder. Bir kavram için bir kelime seçin ve projenin her yerinde ona sadık kalın.

Bilgi Taşımayan İsimlerden Kaçının

veri, bilgi, nesne, yonetici, islemci gibi kelimeler tek başlarına hiçbir şey anlatmaz. Bir sınıfa VeriYoneticisi demek, aslında ne yaptığını gizlemektir. SiparisDeposu veya FaturaOlusturucu gibi somut isimler çok daha bilgilendiricidir.

Kodda Anlamlı İsimlendirme: Yazılımın En Az Konuşulan Süper Gücü
Test odaklı geliştirme

İsimlendirme Tuzakları

  1. Yanıltıcı isimler: $liste adında bir değişkenin aslında bir liste olmaması, en kötü tuzaktır.
  2. Neredeyse aynı isimler: musteriListesi ve musterilerListesi gibi ayırt edilmesi zor isimler hataya davetiye çıkarır.
  3. Gereksiz önek/sonekler: Her sınıfa Manager veya her değişkene tip eki eklemek gürültü yaratır.
  4. Kodlanmış tipler: Değişken adına tipini gömmek (strIsim, arrListe) modern dillerde gereksizdir.

İsim Değiştirmekten Korkmayın

Bir isim yazıldığı anda mükemmel olmayabilir; kod olgunlaştıkça daha iyi bir isim aklınıza gelebilir. Modern geliştirme araçları, güvenli yeniden adlandırmayı (rename refactoring) kolaylaştırır. İyi bir isim bulduğunuzda onu uygulamaktan çekinmeyin; bu, gelecekteki okuyuculara yaptığınız küçük ama değerli bir yatırımdır.

İsim vermek zordur çünkü iyi bir isim, kavramı gerçekten anladığınızı kanıtlar. İsim bulamamak, çoğu zaman tasarımı henüz netleştirmediğinizin işaretidir.

Türkçe mi İngilizce mi?

Bu, ekiplerin sıkça tartıştığı bir konudur. Önemli olan tercihin kendisi değil, tutarlılıktır. Bazı ekipler kod boyunca İngilizce, bazıları iş alanına özgü Türkçe terimleri tercih eder. Berasoft'ta müşteriye teslim edilecek projelerde, ekibin ve müşterinin ortak diline göre net bir standart belirler ve tüm proje boyunca ona sadık kalırız. Yarı Türkçe yarı İngilizce karışık isimlendirme, en kötü seçenektir.

Sonuç

Anlamlı isimlendirme, yazılımın sessiz süper gücüdür; ne gösterişlidir ne de karmaşık, ama kodun okunabilirliğini ve sürdürülebilirliğini derinden etkiler. Amaç açıklayan, tutarlı ve dürüst isimler seçen bir geliştirici, gelecekteki her okuyucuya (çoğu zaman kendine) büyük bir iyilik yapar. İyi kod yazmanın yolu, çoğu zaman iyi isim vermekten geçer. Kod kalitesine önem veren, sürdürülebilir bir yazılım projesi hayal ediyorsanız projenizi konuşalım.

Bu yazıyı paylaş:

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.

Görüşler

0 Yorum

İlk yorumu siz yazın.

Yorum Yap

Yorumlar moderatör onayından sonra yayınlanır.