C# Nesne İsimlendirme Mantığı, dersimiz ile c sharp eğitimlerimize devam edelim. Aslında bu dersimiz sadece c sharp için değil genel anlamda dikkat etmemiz gereken bir konudur. Anlatacağım bu C Sharp Nesne İsimlendirme Mantığı konuda kimse de ille de dediğim gibi yapacaksın diye diretemez. İlk dersimden beri takip ediyorsanız görmüşsünüzdür. Ben her zaman kendi yöntemlerimi yazıyorum. Beğenirsiniz kullanırsınız. Beğenmezsiniz kullanmazsınız. Beğenmediğiniz konularda neden beğenmediğinizi belirtirseniz de çok mutlu olurum. Sonuçta akıl akıldan üstündür. Belki sizi yöntemleriniz çok daha iyidir. Ben de sizin yöntemlerinizi kullabilirim.
Ha yok ben kendi yöntemlerimi gizli tutarım kimse görmesin çalarlar felan diye düşünüyorsanız, size şunu söyleyebilirim ki yazılım sektöründe ego seni hiçbir yere götürmez. Neyse.. :D
C Sharp Nesne İsimlendirme Mantığı
Bir proje hazırlıyorsunuz. Bazı formlarınızda yüzlerce nesne oluyor. Düzgün bir isimlendirme yapmazsak o formun içi ne hale gelir? Çorba olur çorba.. Bir insert yazacaksanız, aradığınız nesnenin hangisi olduğunu bulmak için önce tasarım ekranına geçer nesne adına bakar öyle yazarsınız. Yada bitirdiğiniz bir projede değişiklik yapmanızı istediler açıp bir baktınız verdiğiniz isimlerden hiçbir şey anlamıyorsunuz. Bu ne işe yarıyordu, bu ne işe yarıyordu diye düşünür durursunuz. O zaman C Sharp Nesne İsimlendirme Mantığı ‘nın önemini anlarsınız ama çok geç olur.
NOT: Benimde yaşadığım bir durumdur. Bir projemde ne kadar sinirlendiysem verdiğim değişkenlerin adları şöyleydi, “Sanane”, “YeterArtik” , “YokEbesinin” vs. vs. :D :D
Hepimiz yaşamşızdır diye düşnüyorum. :D
Elbetteki bu en büyük hatalardan birisidir. Değişken isimleri, Klasör isimleri, Form isimleri, Class isimleri yada Nesne isimleri bunları mantıklı ve geri dönüp baktığımızda anlayacağımız ve bakan bir başkasının anlayacağı şekilde yapmalıyız. Kafamıza göre yapamaz mıyız? Pekala yapabiliriz. Ama bu amatörce bir davranış olacaktır ve bizden sonra projeye bakacak olanlar arkamızdan bol bol küfür edeceklerdir. Ki ben çok kişiye böyle küfür etmişimdir.
Peki Nasıl Yapmamız Gerek?
Dostum burada şöyle yapacaksın diye net bir kural yok. Kurallar şöyledir;
- Kullanacağın işleme göre mantıklı isim ver.
- Geri dönüp baktığında ne işe yaradığını isimden çözebil.
- İsmi yazan şeyin ne olduğunu bakınca anlayabil.
Genel olarak kurallar böyledir.
Örnek kodlar ile görelim. (DevExpress kullandığımdan nesnelerin bazıları DevExpress’e özel nesnelerdir.)
cal_recno.EditValue = 0; txt_kod.Text =""; dat_kayit_iptal_tarih.EditValue = DateTime.Now; dat_kayit_tarih.EditValue = DateTime.Now;
Şimdi yukarıdaki koda baktığımda cal_recno bu nesnenin ilk üç harfinden yola çıkarak bir CalcEdit nesnesi olduğunu anlayabiliyorum. Yada txt_Kod nesnesnin bir TextBox olduğunu yada dat_kayit_tarih nesnesinin bir DateEdit nesnesi olduğunu bir bakışta anlayabiliyorum. Nesnenin ne olduğunu anlayabildiğim gibi nesnelerin hangi bilgileri tuttuğunu da rahatça anlıyorum.
private void button1_Click(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { } private void button4_Click(object sender, EventArgs e) { } private void button5_Click(object sender, EventArgs e) { } private void button6_Click(object sender, EventArgs e) { }
Şimdi bana söyleyin, yukarıdaki butonlar hangi işi yapacak butonlar? Hangi click eventine hangi kodu yazacaktınız?
Birde şuna bakalım;
private void btn_Kaydet_Click(object sender, EventArgs e) { } private void btn_Yazdir_Click(object sender, EventArgs e) { } private void btn_Sil_Click(object sender, EventArgs e) { } private void btn_kapat_Click(object sender, EventArgs e) { } private void btn_Onceki_Click(object sender, EventArgs e) { } private void btn_Sonraki_Click(object sender, EventArgs e) { }
Sizce hangisi? Bence ikinci örnek daha iyi. Hangi butonun ne iş yapacağını biliyorum. Baştaki btn ile bunun bir buton olduğunu rahatça anlıyorum ve yapması gereken işin ne olduğunu anlayabiliyorum. Form tasarımımı yaptım, kodları yazmaya geçeceğim diyelim. Şu durumda tasarım ekranına dönüp bu neydi ya? deme ihtimalim ne kadar?.
Değişken konusuna bakalım
public static int Aktif_KullaniciKodu = 0; public static string Aktif_KullaniciAdi = ""; public const int GunSaat = 24; public const int GunDakika = GunSaat * 60; public const int GunSaniye = GunDakika * 60; public const int IsikHizi_km = 1079252850; // km/saat public const int IsikHizi_mt = 299792458; // mt/saniye public const double Pi = 3.14159265359;
Yukarıdaki değişken isimlerine baktığımızda ne işe yaradıklarını rahatça anlayabiliyoruz değil mi? Mesela Aktif_KullaniciKodu adlı değişkende programda aktif olan kullanıcının kodu olduğunu rahatça anlayabiliyorum yada GunSaat adlı değişkende bir sayı olduğunu ve bir günde kaç saat olduğunun bilgisinin tutulduğunu bakınca anlayabiliyorum. Ha gün saatten kastı en fazla günlük mesai saati de olabilir. Ama şundan eminim kesinlikle integer bir değer ve 24 den fazla olamaz. Bu değişkenlere bir de böyle bakalım.
public static int int_1 = 0; public static string string_1 = ""; public const int int_2 = 24; public const int int_3 = int_2 * 60; public const int int_4 = int_3 * 60; public const int int_5 = 1079252850; // km/saat public const int int_6 = 299792458; // mt/saniye public const double double_1 = 3.14159265359;
Bu şekilde verilen isimlerden tek anlayabildiğim int mi string mi olduğu. Ama bundan daha önemlisi bu değişkenin amacı nedir? Nerelerde kullandım? Bu değişkenle ne işlem yaptım? Ara ki bulasın….
Form Konusuna Bakalım
Hangi klasörde ne var? O formlar ne işe yarıyor? Bakınca bu soruların cevabını bulabiliyor musunuz?.
Şunu da söylemeden geçmeyelim. Hani o class klasörü varya sizi o ismi verdiğinize pişman eder pişman. Gerisini ben anlatmayayım deneme olarak class adında bir klasör açın ve için boş bir class yada form ekleyip çağırmayı deneyin. :)
Bir bakışta neyin ne olduğunu anlıyoruz. Ek bir çaba sarfetmemize gerek var mı? Çokta önemli olmayan ve test yapma amacı ile açtığımız formların bile isimlerinden ne içerdiklerini anlayabiliyoruz.
Metodlarımız için de durum aynı. Metodların ne içerdiklerini de isimlerinden anlayabiliyoruz. Kaldı ki kim bakarsa anlar…
C Sharp Nesne İsimlendirme Mantığı dersimizde bu kadar olsun dostlar. Güzelce anlattığımı düşünüyorum. Şöyle olacak diye değilde, hem sizin hemde başkalarının rahatça anlayabileceği isimler verin. Gerekirse ismi biraz uzun olsun. Çokta önemli olduğunu düşünüyorum. Kısa isim vereyim derken anlaşılmaz olmasından iyidir.
C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız.
Takipte ve sağlıcakla kalın. ;)
bu yorum değerli :)
soğuk espiriden sonra teşekkürlerimizi sunarız yazı güzel olmuş..
Yorum için Teşekkürler :D