Yazan : Şadi Evren ŞEKER
Bu yazının amacı, geliştirme ortamlarında kullanılan kodlama standartları için örnek bir doküman oluşturmaktır. Kodlama standardı, daha sonradan yapılacak olan bakım, güncelleme ve ekleme işlemlerinin kolaylaşmasını sağlarken, dokümantasyon ve projeye dahil olan yeni personelin adaptasyonunu hızlandıracaktır. Kurallar, aşağıdaki başlıklar halinde sunulmuştur.
Karakter Kodlaması
Kod geliştirilmesi sırasında, kullanılan isimlerin hiçbirisinde Türkçe karakter tercih edilmemelidir. Kullanılan isimlerin, fonksiyon veya sınıfı tanımlar nitelikte olması ve ayrıca kodun içerisinde yorum satırı şeklinde içeriğine dair bilgi vermesi beklenir.
Deve İsimlendirmesi (Camel Notation)
Bu yazım türünde, birden fazla kelimeden oluşan isimlerin, her kelimesinin ilk harfi büyük diğer harfleri küçük olarak yazılır.
Örnek
DenemeBasligi
Sınıf isimleri
Bütün sınıf isimleri büyük harflerden oluşan bir ön ek alır. Bu ön ek, BoonEX projesi kapsamında yazılması durumunda BX’tir. Bunun dışında, özel bir proje için eklenen sınıflar, projeyi belirten ön ekler alır. Örneğin öğrenci portalı şeklindeki bir proje için OP ön eki eklenebilir. Ayrıca sınıf isimleri yegane olmalıdır (unique) ve deve isimlendirilmesi kullanılmalıdır.
Örnek
OPDenemeSınıfı
Değişken Tanımlama
Bütün değişken isimleri, küçük harf ile başlamalıdır. Ayrıca değişkenin tipine dair bir ön ek almalıdır. PHP dilinde mevcut bulunan değişken tipleri ve bu değişken tiplerine göre eklenebilecek ön ekler aşağıda listelenmiştir.
-
i Integer
-
f Float, Double
-
s String
-
a Array
-
r Resource
-
b Boolean
-
is Boolean
Örnek:
$sIsim = “Variable Value”;
$iSayi = 0; $iSayi++;
$rPrjDosya = fopen (“dosya.txt”, “r”);
var $isYaz;
Fonksiyon isimleri, değişken tanımına uymalıdır. Fonksiyonların küme parantezleri, fonksiyonun tanımlandığı satırın sonunda açılmalıdır.
All Function Names should start with a lower case letter, and each word should begin with a capital letter. Curly braces used in the list of parameters must be given on a new line instead of following the brackets.
Örnek:
function denemeFonksiyonu($iSayi, $sIsim){
//kod
}
PHP diline özgü blok kodları (for, while, do.. while, foreach, if…else gibi), aşağıdaki kurallara uymalıdır.
Language structures such as if … else, for, foreach, while, etc. must be presented in the following manner:
-
Bu blokların, parantez ile blok kelimesi arasında bir boşluk olmalıdır.
-
Blok parantezleri, satır sonunda başlamalıdır.
-
İşlem kullanılması durumunda, işlem ile operantlar arasında boşluk bulunmalıdır
Örnek:
foreach ($aIsimler as $sAnahtar => $sDeger){
//Kod
}
switch yapısı
Bu yapı, kod okunabilirliği açısından kullanılmayacaktır. Bunun yerine if / else blokları kullanılacaktır.
Kod Ekleme Standartları
Kod eklemesi yapılırken, eklemenin ismi, kim tarafından eklendiği ve hangi proje kapsamında yapıldığı yorum satırı olarak kodun başına ve sonuna yazılır.
Örnek:
//Ekleme ismi, kodlayan, proje ismi.//
Kod();
//[Bitti] Ekleme ismi//
Ekleme işlemi yapılmadan önce, orijinal dosyanın yedeği alınmalı ve ekleme işlemi, kopya dosya üzerinde yapılarak orijinal kod saklanmalıdır.
Veri tabanından dosya oluşturulması gerektiği durumlarda, proje ismi ve eklenen modül ismi ön ek olarak konulmalıdır.
Örnek
OPModIsmi_Kullanicilar
Selamlar,
Deve İsimlendirmesi başka kaynaklarda “ilk kelimenin ilk harfi küçük, sonra gelen kelimenin ilk harfi büyük” şeklinde yazıyor. ÖR: degiskenIsmi
Fakat yukarıda deve isimlendirme için DenemeBasligi seklinde yazılmış ve tanımında da Pascal İsimlendirmenin tanımı yazılmış.
http://blogs.msdn.com/b/brada/archive/2004/02/03/67024.aspx
http://cplus.about.com/od/learnc/ss/csharpclasses_5.htm
İyi Günler…
http://www.batuhanbayrakci.com
Camel notation(deve isimledirmesi), kelime olarak deve analojisinden gelmektedir. Yani, devenin hörgücünün yüksek ve alçak olması gibi, kelimelerin büyük ve küçük harfle yazılması kastedilmektedir.
Yazıda görüldüğü üzere, sizin bahsettiğiniz yazım, fonksiyon isimlerinde kullanılmıştır (yani ilk harfin küçük olması durumu). İlk harfin büyük olması durumu ise sınıf isimlerinde kullanılmıştır.
Örneğin yukarıda bir sınıf ismi için önerilen isim:
BuBirSınıfİsmidir şeklinde büyük ve küçük harflerden oluşurken, bir değişken :
buBirDeğişkenİsmidir şeklindedir.
Ben ikisinide kelimelerin ilk harfleri büyük, diğer harfleri küçük olduğu için deve isimlendirmesi olarak sınıflandırmıştım. Belki bu konuda kesin bir sınıflandırma vardır. Yani deve isimlendirmesi, sadece ilk harfin küçük olmasını zorluyor olabilir. Bu konuya dikkat çektiğiniz için teşekkür ederim.
shifte basmamak için de küçük harf iyi oluyor. auto complate için de işe yarıyor hem.
Benimde bildiğim kadarıyla deve isimlendirmesi ayrı sizin örnekteki isimlendirme ayrı. Deve isimlendirmesini estetik açıdan güzel bulmasamda shift tuşundan kazandırıyor.
Konumuzla alakalı mı olucak bilmem ama merak ettiğim birşey var.
Ben uzun bir süredir ticari program geliştiriyorum, kullandığım diller delphi, visual basic ve şimdilerde c#. C++ ile henüz ticari bir program geliştirmedim çünkü benden istenmedi (Türkiyedeki sektörde de pek rastlamadım). Merak ettiğim konu c++ dili ticari program yazarken arayüzünü hangi kütüphanelerden alıyor (MFC diye bişi görmüştüm) ve c++ denildiği zaman akla neden hemen siyah konsol ekranı geliyor. Linux ortamı için MFC işe yaramaz herhalde.
Teşekkürler.
C++ dili herhangi bir arayüzü doğrudan sunmaz. C++ dilinin özelliği, sadece belirli standartları ortaya koymasıdır. Bu yüzden onlarca farklı firma onlarca farklı derleyici ve kod geliştirme ortamı sunmuştur. Bu ortamların hepsinde, temel aynı olmak üzere bazı farklılıklar bulunur.
Örneğin Unix ortamı için motif veya linux ortamı için X server üzerinde kod yazılabilir. X server üzerinde GTK veya QT kütüphaneleri bulunuyor.
Windows için sizin de bahsettiğiniz üzere MFC kullanılabilir.
Ya da bütün bunlardan vaz geçip örneğin 3 boyutlu programlama için openGL kütüphanesini kullanabilirsiniz.
Aslında geliştirme yapılan ortama göre bir editör ve derleyici seçilmesi çok daha doğru olur.
Kısacası C++ bir dil standardıdır ve yukarıda sayılanlar bu dil üzerindeki kütüphanelerdir. Bunlar kullanılmadığı zaman sizin de bahsettiğiniz üzere siyah konsol ekranı en güvenilir arayüzdür 🙂
başarılar
Merhaba benim bir sorum olucaktı :
Birisi bağlantılı liste ve diğeri ise bağlantılı liste kullanılarak yapılan yığını kullanarak iki soyut veri yapısı tanımlayınız ve programlarını (temel işlemler dahil) yapınız? Bağlantılı listenin ve yığının her bir düğümünde öğrencinin numarası, adı, soyadı ve bölümü bilgileri tutulacaktır.
acaba bu konuyla ilgili kaynak kod elinizde varmı yardımcı olursanız çok sevirim. İyi çalışmalar