| Merhaba, bu makalemizde artık programcılık 
hayatımızın heryerinde, küçüklü büyüklü her 
program için ihtiyaçtan çok bir zorunluluk  haline 
gelen isimlendirme tekniklerine, tarihçelerine 
değinecek,kendi isimlendirme stilimizi nasıl 
oluşturabiliriz ona bakacağız. 1. bölümün tamamını 
,yani bu yazıyı tümüyle bu alacakken , 2. 
bölümününde özellikle Microsoft’un .Net için de 
tavsiye ettiği konvansiyon olan Pascal & 
Capitalized Form (Pascal ve Büyük harfler 
notasyonu) ve uygulaması üzerinde duracağız. 
 Neden İsimlendirme Konvansiyonlarını Bilmeliyiz?
 
 Tabii ki bu konvansyonları kullanmak zorunda 
değiliz,kendi konvansiyonumuzu oluşturup kodlamaya 
da geçebileceğimiz gibi,konvansiyonsuz da kodlama 
yapabiliriz. Fakat ileri düzey programlamada 
isimlendirmenin birçok avantajı vardır.
 
 İsimlendirme kavramı,programlama dünyasında 
komplex kodların yazılmaya başlanmasıyla,özellikle 
de OOPL (Nesne Yönelimli Programlama Dilleri) nin 
gelişmesiyle büyük önem kazandı. Çünkü ortak 
olmayan ve anlamsız isimler,modullere bölünmüş ve 
çözüm uzaylarına ayrılmış,spesifikasyonları 
hazırlanmış,yani en önemli bölümü halledilmiş bir 
programın sadece kodlama aşamasında  çeşitli ciddi 
hatalara yol açılmasına sebep oluyordu. Bir 
kişiden fazlasının çalışmasını gerektiren 
projelerde insanlar birbirlerinin yazdıkları kodu 
anlamıyor, hatta bir kişinin kendi yazdığı 
programı bile daha sonra baktığında anlaması 
güçleşiyordu.
 
 İsimlendirme 
konvansiyonlarını kullanmanın diğer bazı 
avantajları ise şunlardır :
 
 o      
Programa vereceğimiz 
isimler anlamlı olur.
 
 o      
Hepsi bir kurala 
bağlı olduğu için düzenli görünür.
 
 o      
İsim seçme işlemi 
artık mekanik olduğundan üzerinde düşünmeye gerek 
kalmaz, hızlı çalışırsınız.
 
 o      
Takım çalışmalarında 
aynı dili konuşmanızı sağlar.
 
 o      
Kodlarınız anlaşılır 
olacağından daha az yorum yazabilirsiniz.
 
 o      
Kodunuzu böceklerden(bugs) 
arındırırken faydası olur.
 
 o      
Kod standardize olduğu 
için daha sonra programınızın kodunu başka bir 
program yardımıyla iyileştirebilirsiniz.
 
 o      
Ortam hazırlayıcıları 
tarafından belirlenen notasyonu kullanmak,ortam 
tarafından otomatik olarak koda yerleştirlien kod 
parçaları ile de uyumlu olacağı için ( ör: Form 
Designer’ın koda eklentileri ) tam uyum sağlar.
 
 İsimlendirme konvansiyon Çeşitleri
 
 Bu 
sorunlara bir çözüm bulmak için notasyon adı 
verilen standartlar geliştirildi. Ortamların 
farklılığından dolayı birçok standard ortaya 
çıktı. Bunlardan bazıları şunlardır :
 
 Hungarian notation (Macar notasyonu):
 
 Macar notasyonu diye bilinen bu notasyon diğer 
notasyonların atası olarak kabul edilmesi 
itibariyle,günümüzde geçerliliği azalmıştır.
 
 DOS’un ilk çıktığı zamanlarda Microsoft’un şef 
direktörü Charles SIMONYI tarafından geliştirilen 
bu tanımlayıcı isimlendirme notasyonunun 
temelinde,ismin önüne tipini yazarak aktif 
isimlendirmeyi sağlamaktır.  Örnek verecek 
olursak, bir boolean flag için “bFlag” 
isimlendirmesi uygun bir isimlendirme şeklidir. 
String olarak  
strFirstName,integer olarak  iNumberOfDays uygun 
isimlendirmelerdir.
 
 Bu isimlendirmenin getirdiği faydalar artık modern 
programlama ortamlarının geliştirilmesiyle ortadan 
kalkmıştır. Çünkü,mesela .Net gibi bir ortamda bir 
değişkenin tipi zaten kodun her yerinde 
bellidir,bundan dolayı ismi uzatmaya gerek yoktur. 
Yani,bu notasyonun günümüzde kullanımı artık 
azalmıştır.
 
 Ayrıca  ortamların desteklediği tür sayısı günden 
güne arttığından bu tür bir isimlendirmeye 
gitmenin bayağı bir güç olacağı açıktır. Bu türün 
Extended Hungarian Notation,Modified Hungarian 
Notation ,Simple Hungarian Notation Hungarian 
Notation türleri bulunmaktadır.
 
 MFC naming (Member-First Case) (İlk harfi 
tanımlayıcılı notasyon):
 
 Bu notasyonun temelinde tanımlayıcının tipinden 
çok türü önemlidir,yani int mi,short mu olmasından 
çok üye,sınıf,fonksiyon olmasına gore 
isimlendirilir. Event isimleri ise (On) ile başlar. 
Örnek olarak m_socket, i_counter,OnClose bu 
notasyona göre iyi isimlendirilmiş 
tanımlayıcılardandır.
 
 Bu isimlendirme tekniğinin ise eskidiği Macar 
notasyonunda belirttiğimiz nedenlerden ötürü 
açıktır.
 
 GNU Notation (GNU Derleyici Notasyonu)
 
 Üstte belittiğimiz diğer notasyonlardan farklı 
olarak bu notasyonda kelimeler arasında altçizgi ( 
_ )  karakteri bulunma şartı getirilmiştir. 
Örneğin global_number_increase güzel bir 
isimlendirme iken icantreadthis iyi değildir.  Ayrıca 
bazı GNU derleyicilerinde 8 ve/veya 14 harften 
fazlasına izin verilmediğinden zorunlu olarak bu 
derleyicilerin standartlarına harf sınırlaması da 
getirilmiştir.
 
 Ayrıca yine bazı derleyicilerde ( __ ) ile 
başlayan değerler ayrılmıştır.  Bundan dolayı 
altçizgi ile başlayan isimlendirmeler iyi 
isimlendirme örneği değildirler.
 
 Diğer bazı notasyonlar ise Sun – Java
notation, SmallTalk – Roll Based Naming, Taligent 
Form dur.
 
 Kendi İsimlendirme Konvansiyonumuzu 
Oluşturma
 
 Yazının bu kısmına kadar , varolan 
isimlendirme çeşitlerini iyice anladığımızı 
umuyorum. Fakat hala benim kendi isimlendirme 
standardım olmalı diyorsak, dikkat etmemiz gereken 
bazı noktalar var.
 
 Bir isimlendirme konvansiyonu oluştururken,dikkat 
etmemiz gerekenlerden ilki, isimlerin 
anlaşılabilecek kadar uzun, fakat yazılabilecek 
kadar kısa olmasıdır. Bunları oluştururken 
konvansiyonları kullanmanın temel faydalarına 
zarar vermemeyi gözetmeliyiz.
 
 İsimlendirme konvansiyonumuzu seçerken ortam,dil, 
ve kültür özelliklerine, isimlendirme konvansiyonu 
mantığının temelinde yatan estetik kaygıya ve 
algoritma oluşturmanın temel şartlarına (verimlilik,isteneni 
verme vs vs …) dikkat etmemiz gerekir.
 
 Tüm 
İsimlendirme Konvansiyonlarınında Bulunması 
Gereken Temel Özellikler
 
 Bütün standartlarda ortak olması gereken noktaları 
 ise şöyle sıralayabiliriz :
 
 
 
  Daha sonra iş kendi isimlendirme 
standardımızın şartlarını oluşturmaya bakıyor. 
Bunun için bu yazı genel bir fikir verebilir. 
İsimlendirme tekniklerinizi,hiçbir tanımlayıcı 
tipi açıkta kalmayacak şekilde tasarladıktan sonra 
projenin daha sonra da aynı mantıkla 
geliştirilmesi ve isimlendirme konvansiyonunuzun 
kalıcılığını koruyabilmesi için iyi bir şekilde 
dökümante etmelisiniz.
  
    Tanımlayıcının(değişkenin,sınıfın,metodun vb...) 
  amacı doğrultusunda isimler verilmesi gerekir. 
  Mesela okuldaki öğrenci sayısını tutan bir 
  değişkene “tamsayi” şeklinde isim vermek yerine 
  “ogrencisayisi” şeklinde isim vermek daha 
  mantıklı olacaktır.
  
    Tanımlayıcının ismi büyük ve küçük harfleriyle 
  okunabilir ve anlaşılır uzunlukta olmalıdır.
  
    Mümkün 
  olduğunca kısaltmaları azaltmalıdır. Çünkü 
  kısaltmalar çoğu zaman tehlikeli olabilmektedir. 
  Örneğin “Ctr” “Control” olarak anlaşılabileceği 
   gibi “counter” olarak da anlaşılabilir.
  
    Tanımlayıcıların isimleri,diğer tanımlayıcılar 
  arasında ayırt edici özellik olarak 
  kullanılmamalıdır. Örneğin “Counter” ve 
  “counter” adında iki değişkenimiz olmamalıdır
 
 Dökümantasyonunuz isimlendirme konvansiyonunuzla 
ilgili herşeyi içermelidir(Tip isimleri,ön 
ekler,arka ekler,kısaltmalar,eklentiler,özel 
karakterler,vb...) .
 
 Ve 
son söz olarak , unutmayalım ki , bir çok kod bir 
kez yazılır ama binlerce kez okunur. Bunu göz 
önüne alarak kodlamamızı daha profosyonel 
standartlara taşıyalım.
 
 Yazının 2. bölümü Microsoft’un .NET ortamı için 
önerdiği formlar olan PASCAL & CAPITALIZED FORM , 
CAMEL FORM adlı notasyonları derinlemesine 
inceleyecek , ve herhangi bir isimlendirme 
sistemimize aykırı davranıldığını çok büyük kod 
parçalarında nasıl anlayacağımızı anlatacağım.
 
 Görüşmek üzere,
 
 Sidar OK
 
 Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği
 
 Soru ve 
önerileriniz için , mail adresim
 
 [email protected]
 
 
 
                Makale:.NET İçin Tavsiye Edilen İsimlendirme Konvansiyonları - 1 C#, Visual C# ve .NET Sidar Ok
 |