Forum: Projeler Genel RSS
Standartlar ne olacak ?
Sayfa:  1  2  3  4  sonraki 
canalpay (Moderatör) #1
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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 ?
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ben bu konuya şimdilik Kod Düzeni belgesi dedim ve bir iki forum yazısında değindim ve Wiki sayfama yazdım:

http://ddili.org/wiki/index.php?title=Ali_Çehreli

İşlerim arasında üçüncü sırada bekliyor. :) Oraya hangi kaynaklardan yararlanacağımı da yazdım. Aynı konuyu şurada da sormuştum:

http://www.digitalmars.com/webnews/newsgroups.…?art_grou…

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

Ali
canalpay (Moderatör) #3
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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?

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

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. :-D İşte açık kaynağın iyi tarafı)
_foo, foo_, m_foo, mFoo, and
some others.


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 (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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 :D, 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?

Ali
canalpay (Moderatör) #5
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ş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.
Bu arada, bu konuya "kodlama standardı" mı deniyor?


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ış.
Avatar
esatarslan52 (Moderatör) #6
Üye Haz 2009 tarihinden beri · 142 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.
acehreli (Moderatör) #7
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
"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:

class Öğrenci
{
    string _ad;
    string _soyad;
    uint   _ayakkabıNumarası;
    Renk   _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. :D 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...

Ali
Avatar
esatarslan52 (Moderatör) #8
Üye Haz 2009 tarihinden beri · 142 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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?

Fonksiyon isimleri de genelde emir olur: double alan_hesapla(); (alanını_hesapla değil).


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.
canalpay (Moderatör) #9
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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[] _dosyaTürü_d
Bu 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.
acehreli (Moderatör) #10
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #8
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.

Ali
acehreli (Moderatör) #11
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Eğer D standardı ile Java standardı farklıysa yine de D'yi yeğleyelim.

Ali
canalpay (Moderatör) #12
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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ı

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.
Eğer D standardı ile Java standardı farklıysa yine de D'yi yeğleyelim.


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.
erdem (Moderatör) #13
Üye Tem 2009 tarihinden beri · 902 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #7
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:

class Öğrenci
{
    string _ad;
    string _soyad;
    uint   _ayakkabıNumarası;
    Renk   _papyonRengi;
}

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. :D 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..
erdem (Moderatör) #14
Üye Tem 2009 tarihinden beri · 902 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #4
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.
acehreli (Moderatör) #15
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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:

"Kodlama standardı"
"Kodlama stili"
"Kodlama tipi"
batı dillerinden

"Kodlama tarzı"
"Kodlama şekli"
doğu dillerinden

"Kodlama biçemi"
az kullanılan Türkçe
(zamanında başka konularda kullanmıştım :) )

"Kodlama türü"
"Kodlama biçimi"
daha Türkçe

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  1  2  3  4  sonraki 
Forum: Projeler Genel RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-06-25, 19:09:39 (UTC -07:00)