Bilindiği üzere yazılımlarımızın kod çalışmaları esnasında birden çok kişi görev almakta ve aynı kodlar üzerinde çalışma yapmaktadır. Tüm çalışanlarımızın kod yapısını rahatça anlayabilmesi için yazılım kodlarının herkesin kullandığı ortak bir düzen içerisinde yazılması önem arz etmektedir. Yazılımlarımızda ortak olarak uyulması gereken kod yazım kurallarına aşağıda yer verilmiştir. Tüm yazılımcılarımızın kodlarını yazarken aşağıda yer verilen yapıyı takip etmesi gerekmektedir.

 


I. DİL

Sınıf, metot, fonksiyon, değişken isimleri ile kod açıklamalarının dili;

- Gamelab Istanbul ürünlerinde İngilizce,

- Mobil Oyun Programlama Eğitimi (MOPE ve MOGE kodlu eğitimler) ile İleri Düzey Oyun Programlama eğitiminde İngilizce,

- Oyun Programlamaya Giriş eğitimlerinde (MOPG kodlu eğitimler) Türkçe,

isimlendirme kullanılmadır.

İngilizce yazılan kodlarda ScoreCanvas, drawBackground(), highscore gibi İngilizce isimlendirmeler yapılmalı.

Türkçe kodlarda ise; PuanCanvas (canvas tür ismi olduğu için aynen bırakıyoruz), arkaplaniCiz(), rekorpuan gibi Türkçe isimlendirmeler kullanılmalıdır.

Eğitimlerde geliştirilmeye başlanıp sonradan ürünleştirilmesine karar verilen yazılımlarda dilin Türkçe'den İngilizce'ye çevirilip çevirilmemesi yönetim kararına bağlıdır.

 


II. SINIF İSİMLERİ

1.Sınıf (class)  isimleri sınıfın işlevini gösterecek anlamlı bir isim olmalıdır.

2. Sınıf (class)  isimleri "Pascal Case" formatında oluşturulmalıdır. Sınıf ismi birden çok kelimeden oluşuyorsa kelimeler birleşik yazılmalıdır. İlk kelime dahil tüm kelimeler büyük harfle başlamalı, diğer harfleri küçük olmalıdır. Örneğin ScoreCanvas.cpp (C++ sınıfları için) veya  ScoreCanvas.class (Java sınıfları için)

3. Canvas sınıflarının isimlerine türünü gösteren kelime eklenmelidir. HelpCanvas veya ScoreCanvas gibi.

4. JavaME yazılımlarında MIDlet sınıfına oyunun ismi verilmelidir. Örneğin "Nitra Racing" isimli bir oyununun MIDlet'inin ismi NitraRacing.class olarak belirlenmelidir.

 

 

III. METOT İSİMLERİ

1. Metot ismi metot içerisindeki işlemin ne olduğunu açıklayacak şekilde belirlenmelidir. drawBackground(); gibi.

2. Metot ismi birden çok kelimeden oluşuyor ise kelimeler birleşik yazılmalıdır.

3. Metot isimleri "Camel Case" formatında oluşturulmalıdır. Metot isimlerinin ilk harfi kucuk olmalıdır. Metot ismi birkaç kelimeden olusuyorsa diger kelimelerin ilk harfleri buyuk olmalıdır. Örneğin updateCharacterPosition();

 

IV. DEĞİŞKEN İSİMLERİ

1. int, boolean, string gibi değişkenlerin isimleri tamamen küçük harflerle yazılmalıdır. Birkaç kelime birleştirilerek oluşturulsa dahi, değişken isimlerinde büyük harf kullanılmamalıdır. Örneğin int userobjectnum;

2. Değişken isimleri birden çok kelime ile oluşturuluyorsa, kelimeler arasına altçizgi, tire gibi işaretler konulmamalı, tüm kelimeler bitişik yazılmalıdır. örneğin int my_game_score şeklinde değil, int mygamescore şeklinde isimlendirme yapılmalıdır.

3. Program akışını kontrol ederken değişkenlerin isimlerinin anlamlı ifadeler olması kolaylık sağlamaktadır. Bu nedenle değişkenlere anlamlı isimler verilmelidir.

 

V. KOD YAZIMI

1. Class başlığı soldan boşluk verilmeyecek şekilde yazılmalıdır.

2. Her alt parçanın solunda üst parçaya göre 1 TAB (4 boşluk karakteri) daha fazla boşluk bırakılmalıdır.

3. Kodlar Region komutu ile bölümlendirilmemelidir. Açıklamalar yorum satırı (//) ile verilmelidir.

4. Operatör işaretlerinin önünde ve arkasında 1 boşluk bırakılmalıdır. Örneğin if (a < b) ...;

5. Üstteki 4 numaralı kuralın istisnası olarak, for döngüsü tanımlanırken, for operatörlerinin yanlarında boşluk bırakılmamalı, diğer ek operatörler yine boşluklu yazılmalıdır. Örneğin:

    for (k=0; k<=m + 5; k++) n = k;

6. OOP nokta ve pointer işaretlerinin önünde ve sonunda boşluk bırakılmamalıdır. Örneğin GameCanvas->get();

7. Metotların aralarında bir satır boşluk bırakılmalıdır.

8. Satır aralarında boşluk bırakılmamalıdır.

9. Açıklama satırlarının başına konan çift slash işareti (//) satırın en başına konulmalıdır.

10. System.out.println (Java), cout (C++), Log.i()  gibi komutlarla yapılan testlerde "Kontrol (no)" ibaresi kullanılmalıdır. Örneğin System.out.println("Kontrol 1");

11. Test amacıyla eklenen Log satırları, ana repoya MR (merge request, birleştirme talebi) göndermeden önce mutlaka silinmelidir.

12. "+= 1" ifadesi yerine "++" ifadesi kullanılmalıdır. Örneğin x++;

13. "-= 1" ifadesi yerine "--" ifadesi kullanılmalıdır. Örneğin x--;