4 Temmuz 2013 Perşembe

NET İçin Tavsiye Edilen İsimlendirme Konvansiyonları

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 :
·         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.


Hiç yorum yok:

Yorum Gönder