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 :
İ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
:
·
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
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.
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.
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.
Hiç yorum yok:
Yorum Gönder