Furkan KapukayaYazılım geliştirme
Yazılım Mimarisi ve Temiz Kod3 dk okuma

Kodda İsimlendirme: Değişken, Metot ve Sınıf Adı Nasıl Seçilir?

Yazılımda iyi isimlendirmenin kuralları; değişken, metot, sınıf ve boolean isimleri, kısaltmalardan kaçınma, Türkçe mi İngilizce mi kararı ve C# isimlendirme standartları.

Yazılımda en zor iki işten birinin "isim vermek" olduğu şakası boşuna değildir. İyi bir isim, yorum yazmaya gerek bırakmaz; kötü bir isim ise doğru çalışan kodu bile anlaşılmaz hale getirir. İsimlendirme, temiz kodun en ucuz ve en etkili adımıdır.

Temel ilke: Niyeti anlatın

Bir isim şu soruları cevaplamalıdır: Bu nedir, ne işe yarar, nasıl kullanılır?

int d;                       // kötü: d ne?
int gecenGun;                // daha iyi
int sonOdemedenBuyanaGecenGun; // bağlamı tam anlatıyor

İsim uzunluğu, kapsamla orantılı olmalıdır. Üç satırlık bir döngüdeki i sorun değildir; sınıf genelinde kullanılan bir alan ise açıklayıcı olmalıdır.

Türlere göre kurallar

Değişkenler ve alanlar

İsim olarak, ne tuttuğunu anlatan adlar seçin: musteriListesi, toplamTutar, sonGirisTarihi.

Boolean değerler

Evet/hayır sorusu gibi okunmalıdır: aktifMi, odendiMi, HasStock, IsEnabled, CanEdit. durum veya flag gibi isimlerden kaçının.

Metotlar

Bir eylem bildirmelidir: FaturaOlustur, StokDus, MusteriGetir. Asenkron metotlarda C# geleneği Async son ekidir: FaturaOlusturAsync.

Sınıflar

İsim olarak, tek bir sorumluluğu anlatmalıdır: FaturaHesaplayici, KargoEntegrasyonu. Manager, Helper, Utils gibi her şeyi içine alabilecek isimler genellikle sınıfın fazla iş yaptığının işaretidir.

Kaçınılması gerekenler

  • Anlamsız kısaltmalar: mstrLst, tplm gibi.
  • Yanıltıcı isimler: Liste olmayan bir şeye urunListesi demek.
  • Tür bilgisi eklemek: strAd, intYas gibi eski alışkanlıklar modern dillerde gereksizdir.
  • Benzer isimler: musteriBilgi ve musteriBilgisi aynı kapsamda ise karışıklık kaçınılmazdır.
  • Olumsuz boolean: PasifDegilMi gibi çift olumsuzluklar okumayı zorlaştırır.

Türkçe mi, İngilizce mi?

İki yaklaşımın da savunulabilir yanları vardır:

  • İngilizce: Kütüphanelerle uyumlu, uluslararası ekip ve kaynaklarla tutarlı.
  • Türkçe iş terimleri: "Cari", "irsaliye", "tevkifat" gibi kavramların birebir karşılığı yoktur; yanlış çeviri anlam kaybına yol açar.

Pratik bir orta yol: teknik kavramlar İngilizce, işe özgü terimler ise ekipçe belirlenmiş tek bir dille. Asıl önemli olan tutarlılıktır; aynı projede "Customer", "Musteri" ve "Cari" aynı şey için kullanılmamalıdır. Bu ortak dil, domain-driven design yaklaşımında da merkezi bir rol oynar.

C# isimlendirme standartları

ÖğeBiçimÖrnek
Sınıf, metot, propertyPascalCaseSiparisServisi, ToplamTutar
Yerel değişken, parametrecamelCasesiparisNo
Özel alan_camelCase_repository
ArayüzI + PascalCaseISiparisDeposu
SabitPascalCaseMaksimumDeneme

Sık sorulan sorular

Kötü bir ismi değiştirmeye değer mi?

Evet. Modern geliştirme ortamlarında yeniden adlandırma tek tıkla ve güvenle yapılır. İyi bir isim, sonraki her okumada zaman kazandırır.

Değişken isimlerinde Türkçe karakter kullanılabilir mi?

C# buna izin verir; ancak klavye, araç ve ekip uyumu açısından çoğu ekip Türkçe karakter kullanmamayı tercih eder.

Sonuç

İyi isimler, kodun kendi kendini belgelemesini sağlar. Ekipçe bir isimlendirme sözlüğü belirlemek ve buna tutarlı şekilde uymak, projenin yıllar içinde anlaşılır kalmasının en basit yoludur.