Sahadan Temiz Kod - İsimlendirmeler

Serkan Apul
2 min readOct 19, 2020

Yazılım geliştirmede isimlendirme işini ne küçümsemek ne de abartmak doğrudur. Önemli olan nokta isimlendirmedeki şansımızı, bizden sonraki yazılımcıya mümkün olan en doğru mesajı verecek şekilde ustaca kullanmaktır.

İsimlendirmelerde dokunduğu yeri en iyi anlatan, en sade tercihi yapmanız gerekir.

Kaliteli bir uygulamanın bakımı kolaydır. Uygun isimlendirme tercihleri kodun bakımına dolayısıyla kalitesine olumlu katkı sunar. İsimlendirme konusunun önemi buradan gelmektedir. Şimdi, daha önce okuduğum kodlarda karşılaştığım bazı geliştirilebilir isimlendirme örneklerini aktarmaya çalışacağım.

Olumsuz İfade Kullanmak ❌

İnsan beyni olumlu bir ifadeyi daha rahat çözer. O nedenle ToplamAgirligaDaraDahilEdilmeyecekMi şeklinde bir ifadeyi anlamakta biraz zorlanabiliriz. Bunun yerine üzerinde biraz düşünüp DaraHaricMi diye bir tercihte bulunabiliriz.

Yapılmamalı yerine EngellensinMi, GözArdiEdilsinMi gibi ifadeleri kullanabiliriz.

Özel İsim Kullanmak ❌

Bir rapor veya kod sınıfını, veya hesap yapan bir metodu isimlendirirken “İspanyaMuhasebeRaporu”, “İzmirKonsimentosu” gibi ifadelerden kaçınalım. “AltToplamDetayliMuhasebeRaporu” “YaldizliKonsimento” gibi sınıfın/raporun içeriğinden esinlenmiş isimler tercih edelim. Böylece bu özelliğe sahip ilerideki kullanımlar ( örneğe göre başka bir ülke) için aynı sınıfı kullanmak aklımıza gelecektir. Tersi durumda genelde kopyalanıp ismi değiştirilir. Kopya kod olacağı için bunu istemeyiz.

(Bu kuralın tek istisnası şudur: Örneğin Aliağa limanı logolu, sadece Aliağa limanındaki sistemde çalışan, başka bir limanda kullanılması hemen hemen imkansız özel rapor ve sayfalar istisnadır. Bunları en iyi ifade eden isim gerçekten AliagaRaporu olacaktır.)

Abartılmış Metot Adları❌

public void FaturaDurumuStopajsaDegistir(…) Metot isminde, metodu çağıran sınıfı ilgilendirmeyen, metodun o işi hangi iş kuralına göre yaptığına dair detaya yer verilmez. Bu detay değişebilir,metot ismi bu değişiklikten etkilenmemelidir.

Doğrusu; public void FaturaDurumuDegistir(…)

Parametrelerden Edineceğim Bilgiyi Metot İsminde Tekrar Etmek ❌

public string TipTurKullanarakSistemDonusumGetir(long tipId, long turId)

Metot adında parametre isimlerini barındırmanın gerek yoktur. Aksi taktirde parametre ara yüzü değişirse metot ismi uygunsuz hale gelir.

Unutmayalım. Metodun ne iş yaptığını ne döndüğünü neler kabul ettiğini sadece adından anlaşılmaz. Parametre setim ve dönüş tipim de, metot ismi ile birlikte bir şeyler söylüyorlar. Bunların aynı şeyi tekrar etmelerine gerek yoktur.

Doğrusu; public string SistemDonusumGetir(long tipId, long turId)

Büyük Metodun İsmine Yansıması ❌

private void FaturaOnaylaVeGonder(..) -> Kendinizi bu şekilde isimlendirme yaparken bağlaç kullanırken buluyorsanız belli ki bir şeyler ters gitmiştir. Bu örnek için metodun birden fazla iş yapıyor olmasından şüphelenebilirsiniz ve bunları ayırmayı düşünebilirsiniz.

Doğrusu ; private void FaturaOnayla(..)

Metot İsminin Dönüş Tipine Uydurulması ❌

private DataTable PersonelAdSoyadTelefonBilgisiDondur(..) -> Bu örnekte metodun dönüş tipini tekrar değerlendirmek gerekir. Bu “ad soyad telefon” bilgilerini bir arada tutan ne ise, başka bir deyişle bunların hepsini kapsayan ifade ne ise onu kullanmak gerekir. Sonrasında bu ifadeye uygun bir sınıf yaratmak ve dönüş tipi olarak bunu kullanmak en uygun çözüm olacaktır.

Doğrusu ; private IletisimBilgi PersonelBilgiDondur(…) (IletisimBilgi,ad, soyad ve telefon bilgisini içeren yeni bir sınıftır)

⭐İsimlendirmedeki Güzel Pratikler ⭐

Tanımladığımız sabitin birimi hakkında net olmak için, değişken ismine bu birimi eklemek güzel bir pratiktir.

long timeOutInSeconds = 60

long maxFileUploadSizeInMb=5

Esen Kalın

Serkan

--

--