C#nedir?com
 
YAZAR HAKKINDA
Sidar Ok
Sidar Ok
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
1 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  C# / VC#/.NET Sidar Ok
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : C# / VC#/.NET
Yayınlanma Tarihi : 18.7.2003
Okunma Sayısı : 21338
Yorum Sayısı : 1     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
Conda install environment.yml Package 21.1.2020
Turhal Temizer 'in Blogu
Mac OS/X Removing CUDA 21.1.2020
Burak Selim Şenyurt
Sekiz Saatlik Sonsuz Döngü 21.1.2020
Burak Selim Şenyurt
Switch Case Kullanmadan Kod Yazılabilir mi? 21.1.2020
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
.NET İçin Tavsiye Edilen İsimlendirme Konvansiyonları - 1
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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 :

  •   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.

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

sidarok@mynet.com

Makale:
.NET İçin Tavsiye Edilen İsimlendirme Konvansiyonları - 1 C#, Visual C# ve .NET Sidar Ok
  • Yazılan Yorumlar
  • Yorum Yaz
TEM
19
2003
Bilgilendirici yazınız için teşekkür ederiz.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor