Standartlar ne olacak ? - Ddili Forum
Forum	Ara	Üyeler	Forum: Projeler › Genel Standartlar ne olacak ?
Sayfa: 1 2 3 4 sonraki ›	canalpay
Konu adı: Standartlar ne olacak ?
Bildiğiniz gibi ilk projemiz trileri. Ama projeyi kodlarken belirli standartlara ihtiyacımız olacak. Örneğin değişkenleri adlandırırken. Yada phobos daki modüldeki fonksiyonları filan Türkçe destekli yaparken. Burdaki çoğu kişi C++ bildiğine göre ordaki standarta göre devam edeceksek bu standartları söylerseniz çok iyi olur.
Değişken için değişken adı yazımı= test_örneği mi olacak testÖrneği mi olacak yada başka bir şey mi. Ve değişken adlarına neye göre karar vereceğiz gibi bir sürü sorularım var.
Mesela Ali Bey şirkette proje kodlarken bir çok kişi ile çalıştığı için en iyi çözümü söylemesini bekliyorum. Çünkü orda bir takım oldukları için birbirlerine uymaları gerekir. Bu uyumu nasıl başardıklarını açıkca merak ediyorum.
Fonsiyonlar içinde mesela string modülündeki toupper modülünün yeni adı ne olacak. Bence adı olduğu gibi kalmamalı.
Eğer fonksiyon Sadece Türkçe destekler halde olacaksa toupperin yeni adı toupperT olmalı. T de büyük olmalı. Zaten T'yi gördüğümüzde hemen Türkçe destekli olduğunu anlayacağız. Ayrıca T Türkçe karakter olmadığı için yabancılarda kolaylıkla kullanabilir.
Fonksiyonu sadece genişletecek ve geliştirecek isekte sonuna G harfi almalı. Örneğin toupperG
İkiside olacaksa toupperTG olmalı.
Evet fonksiyon isimlerini aynı bırakabiliriz. Ama nedense ben bu durumdan rahatsızlık duyuyorum. Sizin fikirleriniz nelerdir ?
Ben bu konuya şimdilik Kod Düzeni belgesi dedim ve bir iki forum yazısında değindim ve Wiki sayfama yazdım:
İşlerim arasında üçüncü sırada bekliyor. Oraya hangi kaynaklardan yararlanacağımı da yazdım. Aynı konuyu şurada da sormuştum:
Oradaki fikirleri de dinliyorum.
toUpper konusunda haklısın: değişik isim daha iyi. Ama başka bir modülden geleceği için zaten farklı bir ismi de var: tr.toUpper. Kullanıcı; ya istediği için, veya karışıklığı gidermek için, öyle tam adını da yazabilir. Daha düşünürüz...
acehreli:İşlerim arasında üçüncü sırada bekliyor. Oraya hangi kaynaklardan yararlanacağımı da yazdım. Aynı konuyu şurada da sormuştum:
Evet şimdi baktım. Bu işlere göre en erken perşembe gübü projeye başlarız gibime geliyor. Ben pazartesi başlarız diye düşünmüştüm ama perşembe başlarsak yada daha geç daha iyi olur gibime geliyor. Değil mi?
Bence kimse tr.toupper(Bu arada U büyük değil diye biliyorum. Bu string modülündeki fonksiyon uni modülündeki değil) yazmak istemez. Başta importunu yazarsın. sonra istediğin gibi yazarsın. Baksanızı D bile iki fonksiyonun adı bir birine benzemesin diye birinin u'sunu küçük yazmış. Bu arada trileri.uni, trileri.string gibi olsa çok daha iyi olur gibime geliyor.(Açıkcası dbetikevi diye proje açtım. Eğer farklı yoldan gidersek proje bittikten sonra kendime göre düzenlemeler yapıp oraya koycam. Evet size rakip geliyor. Ve daha kötüsü kodları kopyalacağım Yaşasın açık kaynak. Gidişatınızı beğenmeyeyim hemen rakip geliyor. İşte açık kaynağın iyi tarafı)
_foo, foo_, m_foo, mFoo, and
Demişler. Bence javadakigibi mFoo yapmalıyız. Bu konuda en düzgün standartları belirlemiş dil java. Hatta java bu yüzden şirketlerde çok kullanılıyor. Javayı araştırıp bakmak lazım. Bu arada şirkette siz nasıl yapıyorsunuz diye sormuştum. Harelde şirket sırı olarak kalıyor acehreli
canalpay:trileri.uni, trileri.string gibi olsa çok daha iyi olur
Çok uzun... Ve dediğin gibi, isminde değişiklik yapmak daha iyi olacak. Eğer fonksiyon Türkçe davranıyorsa, adından bilinmesi önemli.
_foo, foo_, m_foo, mFoo
Demişler. Bence javadakigibi mFoo yapmalıyız.
Eğer benden kuvvetle fikir belirtmemi isterseniz , ben _foo veya foo_ önereceğim. (Biz şirkette foo_ kullanıyoruz...)
Ayrıca, tür isimlerinin büyük harfle, ve değişken ve nesne isimlerinin küçük harfle başlama kuralı C++ ve D'de oturmuş bir kural olduğundan, ve biz de bunu izleyeceksek (ben isterim), m harfi tek başına olamaz ve mutlaka _ gibi bir ayraç gerekir: m_foo. Ben hiiiç sevmesem de, bu konuda fikirlerinizi de dinlerim... Şirkette kullanılan düzenin gizlenecek bir tarafı yok, ve büyük olasılıkla başkalarından uyarlanmıştır, ama gösterilecek bir özelliği de yok. Bütün kod standartları üç aşağı beş yukarı aynı zaten.
Bu arada, bu konuya "kodlama standardı" mı deniyor?
Şirkette kullanılan düzenin gizlenecek bir tarafı yok, ve büyük olasılıkla başkalarından uyarlanmıştır, ama gösterilecek bir özelliği de yok. Bütün kod standartları üç aşağı beş yukarı aynı zaten.
Siz cevap yazmayınca ben de cevap olarak şirket sırrı gibi anlamsız bir espri yapmaya çalıştım. Anladımki olmamış. Zaten kaç farklı tarz olabilir ki. Eninde sonunda birini kabul etcek ve o standartı daha önce kullananlar olacak.
Açıkcası kod düzeni adını beğenmedim. Kodlama düzeni olabilir. Acaba kodlama standartı diyen tek ben miyim diye araştırdım ve kod düzeni ve benzeri şeylerden daha çok kullanıldığını gördüm. Yani açıkcası çok fazla kişi kodlama standartı diyor. Ama bu konuda adı kodlama düzeni(standartın Türkçedeki anlamını tam olarak taşıyan sözcük ölçün. Ama pek kullanılmıyor. Kullanalım derseniz kullanılıyor olur.) olsun derseniz isteğinizi geri çevrimem .
ben _foo veya foo_ önereceğim. (Biz şirkette foo_ kullanıyoruz...)
Aslında ben m_foo kullanıyorum.(burdaki m ne demek ?) Bende javadakini ilk sevmemiştim. Ama gözünüz alışınca sanki kodlar daha hoş duruyor gibi oluyor. dosya_yeri yerine dosyaYeri daha hoş duruyor. Büyük harf de var olduğundan gözünün içene sokuluyor. Değişkeni orada görememe ihtimalin yok gibi.
Tabi hepsi olabilir bence bu size kalmış.
canalpay:Aslında ben m_foo kullanıyorum.(burdaki m ne demek ?) Bende javadakini ilk sevmemiştim.
Ordaki kullanış amaçlarını bilmiyorum fakat ben "m" i sınıfa ait değişkenlerde kullanırım. Bu sayede kod tamamlayıcı "m" e basdığım anda sınıftaki bütün değişkenleri göstermiş oluyor.Bazıları değişken isimlendirirken değişkenin tipine de önem veriyor. Örneğin int tipinden bir değişkeni miSayi, float tipindeki bir değişkeni mfSayi şeklinde yazıyorlar. Bunlar büyük projelerde işe yarıyor olsa gerek.
"Kodlama Standardı"nı beğendim.
Ben C++'da hep dosyaYeri şeklinde hörgüçlü yazımı (camel case) kullanıyordum; ama son zamanlarda dosya_yeri daha okunaklı gelmeye başlamıştı. D'ciler ve Can da hörgüçlü sevdiklerine göre o konu da halloldu. m_, member'ın baş harfi. Eğer kod tamamlayıcıda yardımı olacaksa, yine D'cilerin bazılarının da sevdiğini söyledikleri _foo kullanabiliriz. Bir dener misiniz: öyle yazınca da kullanışlı oluyor mu? Hem alt çizgiyi başa alınca bütün üyeler alt alta güzel görünürler:
&nbsp;&nbsp;&nbsp; string _ad;
&nbsp;&nbsp;&nbsp; string _soyad;
&nbsp;&nbsp;&nbsp; uint&nbsp;&nbsp; _ayakkabıNumarası;
&nbsp;&nbsp;&nbsp; Renk&nbsp;&nbsp; _papyonRengi;
Microsoft'un çok yaygın olarak kullandığı miSayi gibi türün de değişken ismine girmesi (Hungarian notation), çok karşı çıkılmış bir yazım şeklidir. Hatta racon bozduracak kadar kötü bir şey olarak da görülebiliyor. Tabii aslında yararları da var, zararları da...
Başka soru: daha önce hiç Türkçe kod yazmadığım için deneyimim yok... Yukarıdaki gibi isim tamlamalarını _papyonRenk gibi takı yazmadan kullanalım mı? Hatta _ayakkabıNo gibi bazı standart kısaltmalarla?
Fonksiyon isimleri de genelde emir olur: double alan_hesapla(); (alanını_hesapla değil).
Standardı kullandıkça geliştiririz...
acehreli:Başka soru: daha önce hiç Türkçe kod yazmadığım için deneyimim yok... Yukarıdaki gibi isim tamlamalarını _papyonRenk gibi takı yazmadan kullanalım mı? Hatta _ayakkabıNo gibi bazı standart kısaltmalarla?
Takısız isimlendirmeler değişken isimlerinin biraz daha kısa olmasını sağladığı içi daha faydalı bence.
Peki fonksiyon isimlendirmesin de camel case(alanHesapla) mi yoksa altı çizgili (alan_hesapla) mi kullanacağız ?
Bu mesaj esatarslan52 tarafından değiştirildi; zaman: 2009-09-08, 07:27.
Klavyemde bir zaman _ çıkaramadığım için bundan soğumuş olabilirim ama bence bu okunabilirliği azaltıyor.Zaten editörün tamamlama özelliği varsa bütün değişkenleri yanda da gösterme özelliği vardır. Birde _ başlandığında aklıma dille ilgili bir şey geliyor. Sanki kendi değişkenimiz değil de dilde tanımlanmış bir değişken gibi. Ama bir iki kişi _ işini kabul ederse bende olur derim.
Hatta bu olayın cılkını çıkaralım şöyle tanımlayalım. Böylece herkesin gönlü olur. dchar&#91;&#93; _dosyaTürü_dBu arada Esat Bey Fonksiyonları nasıl adlandıracağız demiş. Fonsiyon ve sınıflarıda şöyle adlandıralım. Hem hörgüçlü yazımı olsun hemde fonsiyon yada sınıf olduğu belli olsun : Evet bu DosyaTürü adlı sınıf yada fonksiyon olsun.
Ben şimdi javadaki değişken bildirim şekillerini filan araştırmaya başlıyacağım. Bence javadaki şekli olduğu gibi kabul edebiliriz.
Eğer hörgüçlü kullanmaya karar veriliyorsa, geri kalanı oldukça standart:
Tür, büyük harfle başlayarak hörgüçlü : BenimSınıfım
Fonksiyon, küçük harfle başlayarak : alanHesapla()
Üyeler, baş tarafta alt çizgi : _benimÜyem (bunu böyle seçiyorsak)
Nesne, fonksiyon gibi : havaSıcaklık
Globaller zaten çok da az oldukları için g_ ile: g_kayıtDosyası
Ek olarak, benim C++'dan benimsediğim bir yöntem; hörgüçlü ile alt çizgiyi karıştırmak. Eğer iki başlı başına tür ismini birleştiriyorsak, aralarına alt çizgi çok daha okunaklı yapıyor:
DosyaYazıcı sıradüzeni yanında bir de HayvanEğitici sıradüzeni varsa, bunların özel bir hâli için: HayvanEğiticiDosyaYazıcı yerine HayvanEğitici_DosyaYazıcı gibi...
Aslında bu kuralların kesin olmadıklarını akılda tutmak gerek. Bazı durumlarda ihlal etmek daha yararlı olabilir.
Eğer D standardı ile Java standardı farklıysa yine de D'yi yeğleyelim.
Ben java dökümanına bunun için bakıyorum. Ama bunun yanında değişken isimini hangi adlarla adlandıracağız. Bunun gibi sorunların cevabınıda döküman veriyordu. Hatırladığım kadarıyla değişkende sadece addan oluşturuluyordu. Sınıflar için eylem+ ad oluyordu. Tam hatırlayamadığım için birazdan bakacağım.
Ben açıkcası D'nin standartı olduğunu sanmıyorum. Olsa bile bir iki kişi onu standart olarak kabul etmiştir ama standart değildir. Ama javada sırf değişken adlarına böyle adlandırma yapmadığı için sen hiç java bilmiyorsun daha nasıl değişken adı vereceğini bilmiyorsun dendiğini gördüm. Halbuki adam C#'tan java'ya geçmiş. C#'ta kullandığı adlandırmayı daha çok sevdiği için onu kullanmış ama standarta uymadığı için bu kadar ağır sözler işitmiş. Buda java için standartların önemli olduğunu açıklıyor. Ama D için aynısı değil. Ama bende D'ninkini yeğlerim.
acehreli:Ben C++'da hep dosyaYeri şeklinde hörgüçlü yazımı (camel case) kullanıyordum; ama son zamanlarda dosya_yeri daha okunaklı gelmeye başlamıştı. D'ciler ve Can da hörgüçlü sevdiklerine göre o konu da halloldu. Ben bu hörgüç meselesini sanırım şimdi anladım.. dosyaYeri şeklinde iki kelimeden oluşan değişken isimlerde ikinci kelimenin ilk harfi büyük olunca camel case oluyor. Ben şahsen bazen dosyayeri diye kullanıyorum. Böyle daha hoşuma gidiyor Ya da dosyaYeri ..
acehreli:m_, member'ın baş harfi. Eğer kod tamamlayıcıda yardımı olacaksa, yine D'cilerin bazılarının da sevdiğini söyledikleri _foo kullanabiliriz. Bir dener misiniz: öyle yazınca da kullanışlı oluyor mu? Hem alt çizgiyi başa alınca bütün üyeler alt alta güzel görünürler:
Ben bunun tam tersine _ en sonda olduğu zaman daha kullanışlı olduğunu düşünüyorum. uint ayakkabiNumarasi_ gibi .. Yanılmıyorsam siz de sınıf üyelerini bu şekilde gösteriyordunuz en son hatırladığım kadarıyla acehreli:Microsoft'un çok yaygın olarak kullandığı miSayi gibi türün de değişken ismine girmesi (Hungarian notation), çok karşı çıkılmış bir yazım şeklidir. Hatta racon bozduracak kadar kötü bir şey olarak da görülebiliyor. Tabii aslında yararları da var, zararları da...
Evet ben de Macar notasyonunun tarih olduğunu düşünüyorum.
Bunun dışında kodlama (hizalama) stili olarak da ANSI-C++ kullanıyoruz değil mi. K&R ya da başka bir stil değil..
acehreli:Bu arada, bu konuya "kodlama standardı" mı deniyor?
Bence bunun Türkçe karşılığı için kodlama stili daha uygun. İngilizcedeki programming style'ın karşılığı olarak. Türkçe düşündüğümüzde standart dediğimizde sanki böyle yetkili bir kuruluş tarafından standart oluşturulmuş ve herkesin uyması gerekiyor diye bir anlam ortaya çıkabiliyor.
Haklısın, stil daha yakın bir anlamda. Yabancıların da hem "coding style" hem de "coding standard" dediklerini duyuyorum.
Benim aklıma gelenleri sıralayalım:
az kullanılan Türkçe
(zamanında başka konularda kullanmıştım )
Sayfa: 1 2 3 4 sonraki ›	Forum: Projeler › Genel Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK	This board is powered by the Unclassified NewsBoard software,
Şu an: 2017-03-23, 11:27:32 (UTC -07:00)