C# Tiks v1.0

You might also like

You are on page 1of 39

Visual C# Kodlama Standartlar 31.12.

2010 v1

Versiyon Gemii
Tarih Ver Aklama Yazar(lar) Gzden Geiren(ler)
01.01.2011 1.0 Belge oluturuldu - -

ii
Visual C# Kodlama Standartlar 31.12.2010 v1

Knye

Proje Koordinatr
Kadir amolu

Editr
Kadir amolu

Kapak Tasarm
Hakan amolu

Yazarlar
Volkan ATASEVER rfan MEVSM
Merve CEYLAN Can YAPAN
Burhan ETNKAYA Hakan YAVUZ
Bahtiyar DLEK Ycel YILDIRIM

Gzden Geirenler
Emir ALP Hrkan KARTAL Levent SABAH
Kadir AMOLU Murat KOCAVELOLU Seluk TZEL
Mustafa DEMRCOLU Orkan METN Kerem VARI
Engin DENZ rfan MEVSM Akn YETM
Mesut GNE Soykan ZELK Fatih YCALAR
Mustafa GR Kadir ZGR Eren ZEDE

iii
Visual C# Kodlama Standartlar 31.12.2010 v1

indekiler

Terimler ..............................................................................................................................................vi

nsz................................................................................................................................................... vii

Giri..................................................................................................................................................... viii
Ama ................................................................................................................................................. viii
Kapsam ............................................................................................................................................ viii
Kullanm artlar ............................................................................................................................. viii
Kullanm nerisi.............................................................................................................................. viii
nemli Aklama ............................................................................................................................. viii
Geri Bildirim ..................................................................................................................................... viii

1. Dosya Organizasyonu ...................................................................................................... 1


1.1 Klasr Yaps ......................................................................................................................... 1
1.2 Kaynak Kod Dosyalar ......................................................................................................... 2

2. Biimlendirme ..................................................................................................................... 3
2.1 Snf Yaps ............................................................................................................................ 3
2.2 Girintileme ve Kapsam Belirleme ...................................................................................... 4
2.3 Boluklar................................................................................................................................. 5

3. Aklamalar ........................................................................................................................... 5
3.1 Blok Aklamalar ................................................................................................................... 5
3.2 Tek Satrlk Aklamalar ....................................................................................................... 6
3.3 Satr i Aklamalar ............................................................................................................. 7
3.4 Dokmantasyon Amal Aklamalar ................................................................................. 7
3.5 TODO Aklamalar .............................................................................................................. 7

4. simlendirme Kurallar .................................................................................................... 8


4.1 Byk/Kk Harf Kullanm ............................................................................................... 8
4.2 Pascal/Camel Casing ........................................................................................................... 8
4.3 C# Diline zel Ayrlm Kelimeler ...................................................................................... 9
4.4 Byk/Kk Harf Hassasiyeti............................................................................................ 9
4.5 Ksaltmalar ........................................................................................................................... 11
4.6 Kelime Seimi...................................................................................................................... 11
4.7 sim Alan simlendirme ................................................................................................... 12
4.8 Snf simlendirme ............................................................................................................ 13

iv
Visual C# Kodlama Standartlar 31.12.2010 v1

4.9 Ara Birim simlendirme .................................................................................................... 13


4.10 znitelik simlendirme ..................................................................................................... 14
4.11 Numaralandrma simlendirme ....................................................................................... 14
4.12 Sabit ve Salt Okunur Alan simlendirme .................................................................... 15
4.13 Statik Alan simlendirme.................................................................................................. 15
4.14 Parametre simlendirme..................................................................................................... 15
4.15 Metot simlendirme ............................................................................................................. 16
4.16 zellik simlendirme ........................................................................................................... 16
4.17 Olay simlendirme ............................................................................................................... 16
4.18 Deiken simlendirme ve lk Deer Atama.................................................................... 17
4.19 Kontrol simlendirme........................................................................................................... 17

5. Deyimler................................................................................................................................ 19
5.1 Basit Deyimler ..................................................................................................................... 19
5.2 Return Deyimleri............................................................................................................... 20
5.3 If, if-else, if else-if else Deyimleri ................................................................................... 20
5.4 Switch Deyimleri ............................................................................................................... 23
5.5 For / Foreach Deyimleri................................................................................................... 25
5.6 While/do-while Deyimleri................................................................................................. 26
5.7 stisnai Durum Ynetimi ..................................................................................................... 27

Kaynaklar ......................................................................................................................................... 29

TiKS (Trke ierikli Kodlama Standartlar) Proje Ekibi ........................................ 30

v
Visual C# Kodlama Standartlar 31.12.2010 v1

Terimler
Terim Trke Aklama
Namespace sim alan
Class Snf
Interface Ara birim
Attribute z nitelik
Enumeration Numaralandrma
Property zellik
Event Olay
Constant Sabit
Readonly Salt okunur
Pascal Casing - simler BYK harfle balar. smi oluturan ifade birden
fazla kelimeden oluuyorsa, kelimelerin ilk harfleri
BYK harflerle yazlr. (OgrenciKaydet, UcretHesapla,
RaporYazdir)
camelCasing - simler kk harfle balar. smi oluturan ifade birden
fazla kelimeden oluuyorsa, isimdeki ilk kelime kk
harfle balar. Sonraki kelimeler BYK harfle balar.
(yeniOgrenciKaydet, ucretHesapla, raporYazdr)

vi
Visual C# Kodlama Standartlar 31.12.2010 v1

nsz

Kaliteli yazlm gelitirmenin ilk adm, yazlm bir proje olarak ele almak ve yazlm gelitirme
srecini standartlatrmaktr. Baarl bir yazlm projesinin tanm ise ksaca yledir: Mteri
gereksinimlerini btesinde ve zamannda hatasz olarak karlamak...

Kaliteli bir yazlm gelitirmek iin, iyi bir yazlm gelitirme ynteminiz olmal ve bu yntem test
pratikleri, kodlama pratikleri, kodlama standartlar gibi birok dokmanla desteklenmelidir.
Bylece ekip halinde yaplan almalarda, ekip yeleri birbirlerinin kodunu daha rahat
okuyabilir ve anlayabilir. Tek banza alyor olsanz bile, zerinden zaman getikten sonra
kodu daha rahat okuyabilmeniz iin kendinize has isimlendirme standardnz olmas gerekir.

Peki, Kodlama Standartlar neleri ierir?

Kelimenin tam anlamyla Kodlama Standartlar olarak baktmzda, kastettiimiz ey,


deikenlere, snflara, metotlara, parametrelere, vb. elere nasl isim vereceimiz ve onlar
nerede nasl yazacamzla ilgilidir. Ama kaliteli bir yazlm gelitirmek iin bundan daha
fazlasna ihtiyacmz olacaktr. Kullanc ara yzlerinin nasl gelitirilecei, hatann nasl ele
alnp ilenecei, operasyonlarn kayt gnlne aktarlmas, veri taban ilemlerinin nasl
olaca, listelerin nasl doldurulaca gibi, tm uygulamalarda srekli tekrarlanan ilerin nasl
yaplacan belirlemek de bence kapsam iine alnabilir. Bu durumda epey detayl bir
dokmana ularz ve bu tabii ki biraz da emek gerektirir. Ama buna fazlasyla deecektir.

Tm programlama dilleri iin geerli, tm projelerde uygulanabilecek ve her takma uygun tek
bir yazlm gelitirme standartlar dokman hazrlamak pek mmkn deildir. Ancak iinde
bulunulan kuruma/projeye/ekibe uygun bir eyler yapmak iin genel bir ablon oluturmak hi
de zor olmayacaktr.

te bu almann amac, size balang ablonunu oluturacak temel bir dokman


salamaktr. C# Kodlama Standartlar, Visual Basic Kodlama Standartlar ve TSQL
Kodlama Standartlar dokmanlarn da kapsayan bir dizi standart dokmannn ilkidir. Eer
bu belgenin faydal olduuna inanr, yeterince iyi geri bildirim alrsak, dizinin sonraki
dokmanlarn 2011 ylnn ilk yarsnda oluturmay planlyoruz.

Bu proje fikrini Facebooktaki Tek Kiilik Yazlmevi grubuyla paylatmda beklediimden


ok daha fazla destek aldm. erik gelitirmede, gzden geirmelerde, projenin ilerleme
aamasnda fikirleriyle ve emekleriyle bizi destekleyen herkese ok ok teekkr ediyorum.
zellikle ierik gelitiren arkadalara ayrca minnetlerimi iletiyorum.

Umarm ge de olsa oluturduumuz bu dokman iinize yarar.

Kadir amolu
Aralk 2010

vii
Visual C# Kodlama Standartlar 31.12.2010 v1

Giri

Ama
Bu dokman gelitirmekteki amacmz, C# programlama diliyle gelitirilecek
projelerde kullanlmak zere, kodlama standartlar iin, bir temel, fikir verecek bir
rnek oluturmaktr.

Kapsam
Bu dokman, C# Kodlama Standartlar belgesinin ilk srmdr. Bu nedenle
isimlendirme, biimlendirme ve temel kodlama yaplar gibi en temel konulara
deinilmitir.

Kullanm artlar
Bu dokman bir grup almasnn rndr. Belgenin sahipleri teknik olarak knyede
yazl olan (gzden geirenler hari) isimlerdir. Belgeyi, kaynak belirtmek kouluyla
tamamen ya da ksmen kullanabilirsiniz. Kopyalayabilir, oaltabilir ve databilirsiniz.

Kullanm nerisi
Bu belgeyi gelitireceiniz projelerde olduu gibi kullanmanz mmkn olabilecei
gibi, kendi standartlarnz oluturmak iin temel almak zere de kullanabilirsiniz.
zellikle daha nceden edindiiniz yazlm gelitirme alkanlklarnz varsa, bunlar
dokmandakilerle karlatrarak uygun grdnz tercih edebilirsiniz.

nemli Aklama
Bu dokmanda belirtilen hibir kodlama standard, ulusal ya da uluslararas genel bir
standard ifade etmez. Bu dokmanda aklanan standartlar, ierii gelitirenlerin ve
proje koordinatrnn tecrbeleriyle oluturduklar, kendi projelerinde uyguladklar
kodlama yaklamlardr. Bu dokmanda yazlanlar C# programlama dilinin, ilikili
teknolojilerin ya da yazlm mhendisliinin temel kurallar olarak grmeyin.
Dokman gelitirenlerin hibir ekilde en doru ve en iyi yazlm kodlama standardn
oluturmak gibi bir iddias yoktur. Buradaki ama bir neri ve/veya rnek
oluturmaktr.

Geri Bildirim
Bu proje gnllk esasna dayal olarak, geni bir katlmc kitlesiyle hazrlanmtr. Bu
dokmann olgunlamas ve daha kaliteli hale gelmesi iin, dokman inceleyen,
kullanan herkesin geri bildirimi bizim iin ok deerli olacaktr. Ltfen dokmanla ilgili
hatalar, nerilerinizi ve her trl geri bildiriminizi aadaki web ve eposta adresleri
zerinden bizimle paylan.

Eposta: tiksprojesi@gmail.com
http://tiksprojesi.blogspot.com/
http://www.facebook.com/#!/group.php?gid=29006737231
http://www.chip.com.tr/blog/kadircamoglu/

viii
Visual C# Kodlama Standartlar 31.12.2010 v1

1. Dosya Organizasyonu
1.1 Klasr Yaps
Kullanm amalarna ynelik olarak, kaynak kodlarn bir arada tutacak ekilde klasr yaps
oluturun. Klasrn amacna ynelik isimlendirme yapn. Bylelikle hangi dosyann nerede
olduu kolayca bulunabilir.

Y:

1
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:

1.2 Kaynak Kod Dosyalar


Kaynak kod dosyalarn klasr yapsna uygun olarak, amalarna uygun yerde oluturun.

Y:

2
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:

2. Biimlendirme
2.1 Snf Yaps
Snflarn isimlendirilmesinde Pascal Casing kullann.
simlendirmede, ismin sonuna Class veya Snf kelimesi eklemeyin.
Snf Eriim belirtelerini (private, public, internal) mutlaka belirtin.
Her snf iin mutlaka en az bir yapc metot (Constructor) oluturun.
Paral (partial) snflar kullandnzda, her bir para ierisinde, dier paralarn yerini
belirtin.
Yapc metodumuzun iinde parametrelerinizi eletirirken mutlaka this ekini kullann.

Y:
/// <summary>
/// Hastann kulland ila bilgisi
/// </summary>
private class HastaIlacSinifi
{

public HastaIlacSinifi(string ilacAdi, string ilacBarkod)


{
}
}

KT
/// <summary>
/// Hasta Kayt ilemleri
/// </summary>
public cass HastaIslemleriSinifi
{
public HastaIslemleriSinifi()
{
}
}

3
Visual C# Kodlama Standartlar 31.12.2010 v1

Snflar olutururken girintileri doru ekilde uygulamaya dikkat edin.

Y:
/// <summary>
/// Hastann kulland ila bilgisi
/// </summary>
private class HastalaSnf
{
private string ilacAdi;
private string ilacBarkod;

public HastalaSnf(string ilacAdi, string ilacBarkod)


{
this.ilacAdi = ilacAdi;
this.ilacBarkod = ilacBarkod;
}
}

KT:
private class HastalaSnf
{
private string ilacAdi;
private string ilacBarkod;

public HastalaSnf(string ilacAdi, string ilacBarkod)


{
ilacAdi = ilacAdi;
ilacBarkod = ilacBarkod;
}
}

2.2 Girintileme ve Kapsam Belirleme


Girinti kullanrken dikkatli olun. Girinti (sekme/tab) ve boluklar uygun ekilde kullann. Kod
ya da aklama yazarken boluk kullanmayn. sim alan, snf, metot, koul/dng/istisnai
durum ynetimi bloklarnn her biri iin ayrca girintileme yapn.

Y:
/// <summary>
/// Hasta Kayt ilemleri
/// </summary>
public class HastaIslemleri
{
//Yapc Metodumuz...
public HastaIslemleri()
{

//Hastamzn hastane ileri


}

4
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
namespace KodlamaStandart.Hastane.Hastalar
{
/// <summary>
/// Hasta Kayt ilemleri
/// </summary>
public class HastaIslemleri
{
//Yapc Metodumuz...
public HastaIslemleri ()
{

//Hastamzn hastane ileri


public void hastaKayit(string tcKimlikNo)
{

}
}
}

2.3 Boluklar
Birden fazla deiken tanmlarken, deiken adlar arasnda, virglden sonra boluk
kullann. Blok deyimler iinde, deikenler ve operatrler arasnda boluk kullann.
Fonksiyon parametreleri arasnda, virglden sonra boluk kullann.

Y:
int yas, boy, kilo;

if ( yas == ahmet.Yas )

private void YasHesapla( DateTime dogumGunu,
DateTime hesaplanacakTarih )

KT:
int yas,boy,kilo;

if(yas==ahmet.yas)

private void YasHesapla(DateTime dogumGunu,DateTime
HesaplanacakTarih)

3. Aklamalar
3.1 Blok Aklamalar
Blok aklamalarn fonksiyon, modl ya da proje gibi kodlarn bana daha sonraki
kullanmlara gerekli olabilecek aklamalar girmek iin kullann. Aklamalar ok detaya
inmeden, genel hatlaryla kod blounun kullanmn ve gerekli olabilecek dier bilgileri
kullanarak oluturun.

5
Visual C# Kodlama Standartlar 31.12.2010 v1

Y:
// Sat fiyat hesaplamas 25.10.2011 rfan Mevsim
//
// Fonksiyon birim fiyat ve KDV orani olarak gnderilen
// bilgilerin sat fiyatn geri dndrr.
//
// rnek Kullanm
// Dim SatisFiyati as Double = SatisHesapla(1000,18)
//
// Dn Deeri --> 1018.0 (double)
//
private double SatisHesapla(int birimFiyati, int kdvOrani)
{
return birimFiyati + (birimFiyati * kdvOrani) / 100;
}

KT:
// Sat fiyat hesaplamas (yetersiz aklama)
private double SatisHesapla(int birimFiyati, int kdvOrani)
{
return birimFiyati + (birimFiyati * kdvOrani) / 100;
}

KT:
private double SatisHesapla(int birimFiyati, int kdvOrani)
{
// Dn Deeri --> 1018.0 (yanl ve yetersiz aklama)
return birimFiyati + (birimFiyati * kdvOrani) / 100;
}

3.2 Tek Satrlk Aklamalar


Tek satrlk aklamalar alt ksmnda bulunan kod blounu aklar nitelikte, belirli ilemlerin
gerekletii kod bloklarnn bana yazn.

Y:
// Sat fiyat hesaplamas
int birimFiyati = 1000;
int kdvOrani = 18;
int miktar = 3;
double satisFiyati = miktar * (birimFiyati + (birimFiyati *
kdvOrani) / 100);

KT:
// Birim fiyat tanmlamas
int BirimFiyat = 1000;
int kdvOrani = 18;
int miktar = 3;
double satisFiyati = miktar * (birimFiyati + (birimFiyati *
kdvOrani) / 100);

6
Visual C# Kodlama Standartlar 31.12.2010 v1

3.3 Satr i Aklamalar


Satr ii aklamalar yaparken, sadece bulunduu satrdaki ifadeyi aklamak iin ve
sadece o satra ait olan bilgileri girin.

Y:
string kullaniciAdi = "Ahmet"; // Kullancnn Ad
string kullaniciSoyadi = "Kozda"; // Kullancnn Soyad
string kullaniciSicilNo = "D201056"; // Kullancnn Sicil No

KT:
string kullaniciAdi = "Ahmet"; // Kullancnn Ad
string kullaniciSoyadi = "Kozda";
string kullaniciSicilNo = "D201056";

KT:
string kullaniciAdi = "Ahmet"; // Kullancnn Bilgileri
string kullaniciSoyadi = "Kozda";
string kullaniciSicilNo = "D201056";

3.4 Dokmantasyon Amal Aklamalar


Dokmantasyon amal aklamalar; yazdnz herhangi bir snf ya da fonksiyonun
aklamasn yapmak amacyla kullann. Aklama yaptnz metoda uygun olarak zet
(summary), parametre ve dn deerleri iin aklamalar yazn.

Y:
/// <summary>
/// Basit bir Fonksiyon.</summary>
/// <param name="yazi">
/// Gelen yaziyi txtMetin.text 'e eitler</param>
public void MetinYaz(string yazi)
{
txtMetin.Text = yazi;
}

/// <summary>
/// Baka bir gereksiz fonksiyon </summary>
/// <returns>
/// geri dnen deer 0 olmal.</returns>
public int OrnekFonksiyon()
{
return 0;
}

3.5 TODO Aklamalar


TODO: aklamalarn projeyi gelitirirken aklnza gelen ama daha sonra yaplmas
gereken ilemler iin kullann. Bylece projenin hangi aamasnda hangi deiikleri
yapmanz gerektiini Projenizi derlemeden nce, TODO: kelimesini kaynak kodlarnz
ierisinde arayarak rahatlkla bulabilir ve yapmanz gerekeni hatrlayabilirsiniz.

Y:
//TODO: Hesaplamadan nce KDV oranlarnn gncelliini kontrolet
double satisFiyati = birimFiyati +
(birimFiyati * kdvOrani) / 100;

7
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
//TODO: Sat fiyat hesaplanmas
double satisFiyati = birimFiyati +
(birimFiyati * kdvOrani) / 100;

4. simlendirme Kurallar
4.1 Byk/Kk Harf Kullanm
zellik ve deiken gibi eleri isimlendirirken kelimelerin ilk harflerini kk dier harflerini
byk kullann. Snf ve metotlarda ise ilk harfleri byk kullann.

Y:
int toplamaYap;

string cikarmaYap;

public int ToplamaIslemi(int ilkSayi, int ikinciSayi)

class Kisiler

KT:
int TOPLAMAYAP;

string CIKARMAyap;

public int toplamaisleMI(int ilkSAYI, int ikinciSAYI)

class KISILER

4.2 Pascal/Camel Casing


simlendirme yaparken Pascal/Camel isimlendirmeyi doru yapmak iin aadaki tabloyu
kullann. Metotlarda, alanlarda (field) ve zelliklerde (properties) public, private, internal da
olsa Pascal Casing kullann.

Proje dosyas Pascal Casing HastaTakibi.csproj


Kaynak dosyas Pascal Casing HTLogo.jpg
Snf (class) Pascal Casing Kisi
Yap (struct) Pascal Casing KisiListeBilgisi
Arabirim (interface) Pascal Casing IKisiselBilgiler
Metot Pascal Casing KisiEkle
zellik (Property) Pascal Casing Adi, Soyadi
Alan (public field) Pascal Casing TCKimlikNo
Alan (dier Field) Camel Casing dogumTarihi
Numaralandrma (Enum) Pascal Casing KayitDurumu
Delegate (public) Pascal Casing KayitSilindi
Delegate (dier) Camel Casing kayitIsleniyor
Deiken Camel Casing vergiNumarasi
Parametre Camel Casing ad, soyad, yas
Olay (event) Camel_Casing btnKaydet_Click

8
Visual C# Kodlama Standartlar 31.12.2010 v1

4.3 C# Diline zel Ayrlm Kelimeler


Aadaki kelimeler C# programlama diline zeldir. Bu kelimeleri farkl byk/kk harf
kombinasyonlarnda da olsa kullanmayn.

abstract event new struct


as explicit null switch

base extern object this

bool false operator throw

break finally out true


byte fixed override try

case float params typeof


catch for private uint

char foreach protected ulong


checked goto public unchecked

class if readonly unsafe

const implicit ref ushort


continue in return using

decimal int sbyte virtual


default interface sealed volatile

delegate internal short void

do is sizeof while

double lock stackalloc

else long static


enum namespace string

4.4 Byk/Kk Harf Hassasiyeti


Trke karakterler farkl alglandndan kodlama ierisinde Trke karakterler kullanmayn.
Kk i ve bu karakteri byk yazarken I kullann. yerine c, yerine s, yerine g,
yerine u, yerine o tercih edin.

Y:
int kacisVeIlk;
string ogrenmeVeEgitim;

KT:
int Kavelk;
string renmeVeEitim;

Fonksiyonlarda parametre kullanrken verilen tek karakterli isimleri byk veya kk


versiyonlarn yazarak kullanmayn.

9
Visual C# Kodlama Standartlar 31.12.2010 v1

Y:
public int ToplamaIslemi(int istenenSayi, int verilenSayi)

KT:
public int ToplamaIslemi(int b, int B)

Ayn isimli fakat harflerinin bykl kkl farkl deikenler tanmlamayn.

Y:
int denemeSayisi;
int eldeSayisi;

KT:
int deneme;
int DENEME;

C# diline zel olan ayrlm kelimeleri byk/kk harf durumunu deitirerek de olsa
kullanmayn.

Y:
Point degisken;
int digerDegisken;

KT:
Point p;
int POINT;

Farkl byk/kk harf hassasiyetlerinde, ayn isimli metotlar yazmayn.

Y:
private void ToplamaHesabi()
{
}

private void CikarmaHesabi()


{
}

KT:
private void hesapla()
{
}

private void Hesapla()


{
}

10
Visual C# Kodlama Standartlar 31.12.2010 v1

4.5 Ksaltmalar
Snf, zellik, metot, deiken gibi elere isim verirken ok zorunlu olmadka ksaltma
kullanmayn.

Y:
int kullaniciAdi;
bool yetkiliMi;

private void KullaniciKaydet(){}

KT:
int kAd;
bool ytkl;

private void KullKyd(){}

Eer ayn isme sahip ayn trden iki veya daha fazla e kullanlacaksa bunlar
numaralandrmay tercih edin.

Y:
int ogrenci1;
int ogrenci2;

KT:
int ogrenciIlk;
int ogrenciIkinci;

4.6 Kelime Seimi


Kolay okunabilir, tanmlayc isimleri sein.

Y:
public int UrunAdi { get; set; }

KT:
public int AdiUrun { get; set; }

Tanmlayc isimlerinizi ksa tutmak iin onlar anlamszlatrmayn.

Y:
public int KullaniciAdi { get; set; }

KT:
public int kAdi { get; set; }

11
Visual C# Kodlama Standartlar 31.12.2010 v1

Tanmlayclarnz isimlendirirken hibir zaman tire -, alttan tire _ veya alfa-numerik


olmayan karakterler !@#$%^&*() kullanmayn.

Y:
public DateTime DogumTarih { get; set; }

KT:
public DateTime Dogum&Tarih;
public DateTime Dogum_Tarih;

Tanmlayclarnz hibir zaman Macar Notasyonu - Hungarian Notation- ile


isimlendirmeyin.

KT:
public int u32Identifier;
public bool bBusy ;
public char chInitial;
public double dbPi;
public string[] rgStudents = new string[5];
public Form1 hwndForm;
public int u32Identifier;
public bool bBusy ;
public char chInitial;

4.7 sim Alan simlendirme


sim alan adlandrrken, Pascal Casing tipi isimlendirme kullann. Byk harfle balayp
her bir kelimenin ilk harfini byk harf kullanarak isim verin. Kelimeler arasnda _ veya -
benzeri ayralar kullanmayn. sim alan adlandrrken, proje/assembly ad ile ayn ad
kullann. Kullandnz dizinlerin adlarn, isim alan adlarnda da kullann.

Y:
KodlamaStandartlari.csproj
namespace KodlamaStandartlari

KodlamaStandartlari.Models.dll
namespace KodlamaStandartlari.Models

KodlamaStandartlari.csproj projesinde Models dizini


namespace KodlamaStandartlari.Models

KT:
KodlamaStandartlari.csproj
namespace Kodlama

KodlamaStandartlari.Models.dll
namespace KodlamaStandartlari.Modeller

KodlamaStandartlari.csproj projesinde Models dizini


namespace KodlamaStandartlari.Modeller

12
Visual C# Kodlama Standartlar 31.12.2010 v1

4.8 Snf simlendirme


Snflara ad verirken, Pascal tipi isimlendirme kullann. Byk harfle balayp her bir
kelimenin ilk harfini byk harf kullanarak isim verin. Kelimeler arasnda _ veya - benzeri
ayralar kullanmayn. Snflara ad verirken, isim veya isim bei kullann. Snflara
adlarnda, Snf, Class veya C gibi ifadeler kullanmayn.

Y:
public class Araba

internal class Ucurtma

private class UcakMotoru

KT:
public class Yap

internal class ClassUcurtma

internal class CucurtmaSinifi

private class UcakmotoruClass

4.9 Ara Birim simlendirme


Ara birimlerinizi uygulayacanz snflarn isimleriyle birlikte balarna I harfi getirerek
yazn. Ara biriminizi snfnza uygularken metotlarnz #region - #endregion n ilemci
komutlar arasna yazn. Ara biriminizi isimlendirirken her iki kelimenin ilk harfleri byk
olacak ekilde isimlendirin.(PascalCasing)

Y:
public interface ITakip
{
public int StokTakip(int urunAdet);
}

public class Takip :ITakip


{
#region ITakip Members
public int StokTakip(int urunAdet)
{
this.urunAdet = urunAdet;
}
#endregion
}

13
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
public interface StokInterface
{
public int StokTakip(int urunAdet);
}

public class Takip :StokInterface


{
#region StokInterface Members
public int StokTakip(int urunAdet)
{
this.urunAdet = urunAdet;
}
#endregion
}

4.10 znitelik simlendirme


Eer snfnza birden fazla znitelik ekleyecekseniz her znitelii yeni bir satra yazn.
Sadece ilikili zniteliklerinizi ayn satra yazn. Kendi gelitirdiiniz znitelik snflarnz
isimlendirirken, snf isminizin sonunda Attribute kelimesini getirin.

Y:
[Attribute1]
[Attribute2]
[Attribute3, RelatedAttribute3]
public class Takip
{}

KT:
[Attribute1, Attribute2, Attribute3]
public class Takip
{}

4.11 Numaralandrma simlendirme


Numaralandrmalarnz isimlendirirken Pascal Casing isimlendirme kuraln dikkate aln.
Numaralandrma isimlerinizin sonuna enum yazmayn. Numaralandrmalarnz iin tekil
isimler sein.

Y:
public enum OnemDerecesi
{
Yuksek, Orta, Dusuk
};

KT:
public enum OnemDereceleriEnum
{
Yuksek, Orta, Dusuk
};

14
Visual C# Kodlama Standartlar 31.12.2010 v1

4.12 Sabit ve Salt Okunur Alan simlendirme


Sabit ve Salt Okunur alanlar isimlendirilirken; isim, isim tamlamas ve (ok uzunsa)
anlaml ksaltmalar; her kelimenin ilk harfi byk olacak ekilde kullann. (PascalCasing)

Y:
public const int aySayisi = 12;
public const int haftaSayisi = 52;
public readonly int gunSayisi = 365;

KT:
public const int Ay_Sayisi = 12;
public const int haftasayisi = 52;
public readonly int _Gun_Sayisi = 365;

4.13 Statik Alan simlendirme


Statik alanlar isimlendirilirken; isim, isim tamlamas ve (ok uzunsa) anlaml ksaltmalar;
her kelimenin ilk harfi byk olacak ekilde kullann. (PascalCasing)

Y:
public static double fiyat;
public static int toplamSaat;

KT:
public static double fyt;
public static double _fiyat;
public static int toplam_saat;

4.14 Parametre simlendirme


Parametre isimlendirilirken; ieriine gre anlaml olarak, isim, isim tamlamas ve (ok
uzunsa) anlaml ksaltmalar; birinci kelimenin ilk harfi kk bunu takip eden kelimelerin
ba harfleri byk olacak ekilde kullann. (camelCasing)

Y:
private void KullaniciKaydet(string kullaniciAdi, string parola) {}

KT:
private void KullaniciKaydet(string kul_adi, string prl ) {}

15
Visual C# Kodlama Standartlar 31.12.2010 v1

4.15 Metot simlendirme


Metotlarnz isimlendirirken Pascal isimlendirme kuraln kullann.(Pascal Casing)
Metot parametreleriniz iin Camel isimlendirme kuraln kullann.(Camel Casing)
Metotlarnz fiille veya fiil cmleleriyle isimlendirin.

Y:
public int Topla(int birinciSayi, int ikinciSayi)
{
return birinciSayi + ikinciSayi;

KT:
public int Toplamaislemi(int BirinciSayi, int IkinciSayi)
{
return BirinciSayi + IkinciSayi;
}

4.16 zellik simlendirme


zelliklerinizi isimlendirirken Pascal isimlendirme kuraln kullann.(Pascal Casing)
zelliklerinizi isim ve isim tamlamalaryla isimlendirin. zelliklerinizin tiplerine uygun
isimlendirme yapn. zelliklerinizi isimlendirirken balarna Get veya Set getirmekten
saknn.

Y:
public int IsimSoyisim { get; set; }
public DateTime OdemeTarihi { get; set; }
//OnemDerecesi Enum bir tipe sahiptir.
public OnemDerecesi OnemDerecesi { get; set; }

KT:
public string Getisim { get; set; }
public DateTime OdemeTarihiniAl { get; set; }
public OnemDerecesi SetOnemDerecesi { get; set; }

4.17 Olay simlendirme


Olay(Event) ileyici isimlendirmede on ifadesini kullanmayn.

Y:
event EventHandler ciftTikla;

KT:
event EventHandler onCiftTikla;

16
Visual C# Kodlama Standartlar 31.12.2010 v1

Tek bir event isimlendiriyorsanz gemi zamanda fiiller kullann.

Y:
event EventHandler mesajYollandi;
event EventHandler ciftTiklandi;

KT:
event EventHandler mesajYolla;
event EventHandler ciftTikla;

4.18 Deiken simlendirme ve lk Deer Atama


Vereceimiz isimler Trke olmaldr. Tanmladmz isimler olmal ancak anlamn
kaybetmemelidir.

Y:
class ResimBoyutlandirici
{
string resimYolu = "c:";
string cozunurluk = "1024x768";
}

KT:
class WindowsFormsApplication1
{
string picPath = "c:";
string @int = "1024x768";
}

4.19 Kontrol simlendirme


Kontrol simlendirirken, kontrollerin nne, ilgili kontrol belirtecek bir ksaltma kullann.

Y:
private void btnBaslat_Click(object sender, EventArgs e)
{
}

private void lblAciklama_Click(object sender, EventArgs e)


{
}

17
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
private void Baslat_Click(object sender, EventArgs e)
{
}

private void Aciklama_Click(object sender, EventArgs e)


{
}

Kontrol isimlendirme iin aadaki tabloyu kullann.

Kontrol Ksaltmas
Checkbox chk
RadioButton rdb
Label lbl
Textbox txt
DataGrid dtg
Button btn
ImageButton mb
Image img
PlaceHolder phd
Table tbl
CheckBoxList cbl
RadioButtonList rbl
Radio(Option)Button opt
Hyperlink lnk
DropDownList ddl
ListBox lst
DataList dtl
Repeater rpt
Panel pnl
Validators val
ComboBox cmb
DropDownList ddl
GridView gvw
hScrollBar hsc
vScrollBar vsc
Picture pic
Assembly asm
Boolean bln
Char ch
Container ctr
DataColumn dcol
DataGridDateTimePickerColumn dgdtpc
DataGridTableStyle dgts
DataGridTextBoxColumn dgtbc
DataReader drd
DataRow drw
DataSet dset
DataTable dtable
DateTime date
Dialog dialog
DialogResult dr
Double dbl
Exception ex

18
Visual C# Kodlama Standartlar 31.12.2010 v1

Kontrol Ksaltmas
GroupBox gbx
HashTable htbl
ImageList iml
Integer int
Literal ltr
MarshallByRefObject rmt
Mainmenu mm
MenuItem mi
MD5 md5
MDI-Frame frame
MDI-Sheet sheet
NumericUpDown nud
PictureBox pbx
RadioButton rbtn
SqlCommand sqlcom
SqlCommandBuilder sqlcomb
SqlConnection sqlcon
SqlDataAdapter sqlda
StatusBar stb
String str
StringBuilder strb
TabControl tabctrl
TabPage tabpage
ToolBar tbr
ToolBarButton tbb

5. Deyimler
5.1 Basit Deyimler
Basit deyimleri yazarken her bir satra sadece bir deyim yazn. Deyimleri ak ve okunur
ekilde kodlayn.

Y:
int sayi1 = 5;
int sayi2 = 5;
int toplam = sayi1 + sayi2;

KT:
int sayi1 = 5; int sayi2 = 5;
int toplam = sayi1 + sayi2;

19
Visual C# Kodlama Standartlar 31.12.2010 v1

5.2 Return Deyimleri


Fonksiyonlardan deer dndrrken her bir koul iin ayr ayr deer dndrmeyin.
Koullar kontrol ettikten sonra fonksiyonunun sonunda tek bir return deyimi kullann.

Y:
private string MusteriAdiGetir(int musteriNo)
{
string musteriAd = " ";

if (musteriNo == 1)
{
musteriAd = "Kadir amolu";
}
else
{
musteriAd = "Mteri Bulunamad";
}
return musteriAd;
}

KT:
private string musteriAdiGetir(int musteriNo)
{
if (musteriNo == 1)
return "Kadir amolu";
else
return "Mteri Bulunamad";
}

5.3 If, if-else, if else-if else Deyimleri


Hemen hemen her programlama dilinde olan deyimlerdir. Bir art belirtilerek programn ona
gre davranmasn salar. Bu yzden bu deyimlerin standartlara gre yazlmas olduka
nemlidir.

ncelikle genel olarak if deyimindeki yanllklar ve olmas gerekenleri gsterelim.

Genel olarak yaplmas gereken { karakterinin art bitiminden sonra bir satr aasnda
balatlmas } karakterinin de olay bitiminden bir satr aasnda bitirilmelidir.

Y:
if ( "1" == "1" )
{
MessageBox.Show( "1 eittir 1" );
}

KT:
if ("1"=="1"){
MessageBox.Show("1 eittir 1");}

20
Visual C# Kodlama Standartlar 31.12.2010 v1

Koul deyiminiz tek satrlk bile olsa blok {} iine aln.

KT:
if ("1"=="1")
MessageBox.Show("1 eittir 1");

Karmak koullar if blou iine yazmayn. Bu tip koullar blok ncesinde kontrol edilerek
sonucun bir deikenlere ykleyerek if kouluna yazn.

Y:
enYuksekNotMu = (notum > enYuksekNot);
oncekiEnYuksekNotMu = (notum == enYuksekNot);
gecerliNotmu = (notum < maksimumNot);

if ((enYuksekNotMu && ! oncekiEnYuksekNotMu) && gecerliNotMu)


{

}

KT:
if (((notum > enYuksekNot) && (notum != enYuksekNot))
&& (notum < maximumNot))
{

}

Veri tipi bool olan deikenleri direkt olarak kullann. == ya da != ile tekrar ileme
sokmayn.

Y:
if (donenDeger)
{
}
if (!donenDeger2)
{
}

KT:
if (donenDeger == true)
{
}

if (donenDeger2 == false)
{
}

21
Visual C# Kodlama Standartlar 31.12.2010 v1

Koul yaplarnda gereksiz yere koulun tersini if ile kullanmayn. Bunun yerine else
kullann.

Y:
if (donenDeger)
{
MessageBox.Show("True Dnd");
}
else
{
MessageBox.Show("False Dnd");
}

KT:
if (donenDeger)
{
MessageBox.Show("True Dnd");
}
if (!donenDeger)
{
MessageBox.Show("False Dnd");
}

ie if bloklar yerine mmknse else if yaps kullann.

Y:
if (ilkDeger > ikinciDeger)
{
MessageBox.Show("1. deer byk");
}
else if (ilkDeger < ikinciDeger)
{
MessageBox.Show("2. deer byk");
}
else
{
MessageBox.Show("2 side eit");
}

22
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
if (ilkDeger == ikinciDeger)
{
MessageBox.Show("2 side eit");
}
else
{
if (ilkDeger > ikinciDeger)
{
MessageBox.Show("1. deer byk");
}
else
{
MessageBox.Show("2. deer byk");
}
}

5.4 Switch Deyimleri


Sral koul durumlarnn deerlendirilmesine gerek olmayan, belirli bir deere gre belirli
bir ilemin yaplmas gereken durumlarda switch kullann. Switch deyiminde mmkn
olduunca listeleme (enum) kullann.

Y:
public enum CompressionFormat
{
Zip,
Gzip,
Rar
}

public void Compress ( CompressionFormat format )


{
switch ( format )
{
case CompressionFormat.Zip:
CompressWithZip();
break;
case CompressionFormat.Gzip:
CompressWithGzip();
break;
case CompressionFormat.Rar:
CompressWithRar();
break;
default:
CompressWithZip();
break;
}
}

23
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
public enum CompressionFormat
{
Zip,
Gzip,
Rar
}

public void Compress( CompressionFormat format )


{
if ( format == CompressionFormat.Zip )
{
CompressWithZip();
}
else if ( format == CompressionFormat.Gzip )
{
CompressWithGzip();
}
else if ( format == CompressionFormat.Rar )
{
CompressWithRar();
}
else
{
CompressWithZip();
}
}

Mutlaka "default" ile beklenmeyen verileri kontrol edin.

Y:
public enum CompressionFormat
{

}

public void Compress ( CompressionFormat format )


{
switch ( format )
{
case CompressionFormat.Zip:
CompressWithZip();
break;

default:
CompressWithZip();
break;
}
}

24
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
public enum CompressionFormat
{

}

public void Compress ( CompressionFormat format )


{
switch ( format )
{
case CompressionFormat.Zip:
CompressWithZip();
break;
case CompressionFormat.Gzip:
CompressWithGzip();
break;
case CompressionFormat.Rar:
CompressWithRar();
break;
}
}

5.5 For / Foreach Deyimleri


Bu iki dng tipinde, dng iinde sadece tek bir satr kod olsa dahi blok parantezlerini
kullann ve dng deikenini aksi gerekmedike dng iinde tanmlayn.

Y:
string[] test = { "bir", "iki", "" };
for ( int i = 0; i < test.length; i++ )
{
MessageBox.Show(test[i]);
}

KT:
int i;
string[] test = { "bir", "iki", "" };
for(i;i<test.length;i++)
MessageBox.Show(test[i]);

Y:
string test = "bir,iki,uc";
foreach ( string item in test.Split(',') )
{
MessageBox.Show(item);
}

KT:
string test = "bir,iki,uc";
string item;
foreach (item in test.split(','))
MessageBox.Show(item);

25
Visual C# Kodlama Standartlar 31.12.2010 v1

5.6 While/do-while Deyimleri


while/do-while dnglerinde, dngnn kn, dngnn koul deyimiyle kontrol edin.
Blok iinde if deyimi kullanarak k zorunlu kalmadka kullanmayn.

Y:
while ( koul )
{
// ...
}

do
{
// ...
} while ( koul );

KT:
while ( true )
{
if ( !koul ) break;
// ...
}

do
{
// ...
if ( !koul ) break;
} while ( true );

26
Visual C# Kodlama Standartlar 31.12.2010 v1

5.7 stisnai Durum Ynetimi


Asla bo bir catch blou tanmlamayn. Throw-catch pahal bir ilemdir. Bunu ak denetimi
iin kullanmayn. Deerlendirmeyeceiniz istisnai durumu yakalamayn. Catch blou iinde
try-catch kullanmaktan kann. stisnai durum yakalanmasn en ok yakalanma olasl
olandan en azna doru sralayn. Finally blounda try iin ayrlan kayna salverin.

Y:
try
{
// stisnai durum oluma ihtimali olan kod
}
catch ( SQLException sx ) // Belirli bir hata
{
// Oluan durumu rapor et.
throw;
}
catch ( Exception ex ) // Dier hata durumlar
{
// Oluan durumu rapor et.
throw;
}

finally
{
// try blou iinde kullanlan kaynan salverilmesi.
}

KT:
try
{
// stisnai durum oluma ihtimali olan kod
}
catch
{
throw;
}
finally
{
// try blou iinde kullanlan kaynan salverilmesi.
}

stisnai durumlardan kanmak iin, ncelikle parametrelerin/verilerin doruluunu kontrol


etmeyi tercih edin.

Y:
if ( baglanti.State != ConnectionState.Closed )
{
baglanti.Close();
}

27
Visual C# Kodlama Standartlar 31.12.2010 v1

KT:
try
{
baglanti.Close();
}
catch ( Exception ex )
{
// Oluan durumu rapor et.
}

Catch blou iinden farkl bir exception frlattnzda mutlaka innerException zelliine
oluan istisnai durumu ekleyin. Bu ekilde Call Stack zincirini bozmam olursunuz.

Y:
try
{
// stisnai durum oluma ihtimali olan kod
}
catch ( Exception ex )
{
// Oluan durumu rapor et.
throw new Exception( "istisnai durum aklamas",
ex );
}

KT:
try
{
// stisnai durum oluma ihtimali olan kod
}
catch ( Exception ex )
{
// Oluan durumu rapor et.
throw new Exception( "istisnai durum aklamas" );
}

28
Visual C# Kodlama Standartlar 31.12.2010 v1

Kaynaklar
Bu dokmandaki ierik oluturulurken aadaki kaynaklardan yararlanlmtr.
- .Net Framework General Reference: Design Guidelines for Class Library Developers MSDN
Online Reference (http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx)
- http://se.ethz.ch/teaching/ss2007/251-0290-00/project/CSharpCodingStandards.pdf
- http://www.idesign.net/idesign/download/IDesign%20CSharp%20Coding%20Standard.zip
- http://www.csharpfriends.com/articles/getarticle.aspx?articleid=336
- http://www.dotnetspider.com/tutorials/CodingStandards.doc
- http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx
- http://10rem.net/articles/net-naming-conventions-and-programming-standards---best-practices

29
Visual C# Kodlama Standartlar 31.12.2010 v1

TiKS (Trke ierikli Kodlama Standartlar) Proje Ekibi

Kadir AMOLU
Kadir AMOLU, 1974 stanbul doumludur. 1995 ylndan itibaren profesyonel
olarak yazlm projelerinde grev alan AMOLU, 1993 ylndan sonra eitim
sektrnde de yer almtr. Microsoftun yazlm zerine birok sertifikasna sahip
olan AMOLUnun Pusula, Alfa ve Kodlab yaynevlerinden kan on adet kitab
bulunmaktadr. Bilgisayar mhendislii doktora rencisi olan AMOLU,
BilgeAdam Kurumsal da yazlm ve veri taban danman olarak almaktadr.

Volkan ATASEVER
Yazlm Dnyasna BASIC ve C/C++ dili stnde uygulamalar gelitirerek adm
atan Volkan daha sonra C# ve VB.NET, Java dilleri ile uygulamalar gelitirmitir.
Haziran 2010 tarihinde ise Bilgisayar Mhendislii kyafetini giymitir. Ineta
topluluklarnda uzun zaman yazarlk ve editrlk yaptktan sonra
DeveloperMania.Net sitesinin topluluk lideri olmutur. INETA User Group Lead
olarak eitli almalar yapmaktadr. Yazlm Uzmanl ve Danmanl
yapmaktadr. Microsoft'un Akademik sitesi MSAkademik.Net de VB.NET
editrl yapmtr. Konumac olarak eitli niversite ve eitim merkezinde
seminer vermektedir. Microsoft'un Trkiyede sadece 18 kiiye verdii Sharepoint
Server sertifikasn almtr. Mobil uygulamalar, ASP.NET, MOSS 2007, SQL
Server ve Windows gelitirmeleri ieren projelerde grev almaktadr. Bilgisayar ve
teknoloji dergilerinde yazarlk yapmaktadr. u anda PCWorld dergisinde
yazmaktadr. Ulusal Akademik Konferanslarda akademik bildiri ve makale yazarak
bilime katkda bulunmaktadr. Bilgisayar Mhendisi olarak almalarn
srdrmektedir. Bilgisayar Mhendisi olarak almalarna devam etmektedir.

Merve CEYLAN
2001 ylnda lisede programlama eitimi almaya balayan Merve Ceylan, 2007
ylnda Marmara niversitesi Teknik eitim fakltesi - bilgisayar teknolojileri ve
programlama blmn bitirmitir. Halen eitimine devam etmekte olup iletme
blm rencisidir.
niversiteye devam ederken TBTAKta 2 yl genel muhasebe projesinde
yazlm uzman olarak almtr. uan 3 yldr devam etmekte olduu Maltepe
niversitesi renci ileri otomasyonu projesinde proje sorumlusu olarak grev
almaktadr. Bu yllar iinde farkl irketlerin el terminalli restoran otomasyonu ve
pazar aratrmas projelerinde de almtr.

Burhan ETNKAYA
2005 senesinde yazlm dnyasna lisede Veri taban Programcl Blmne
balayarak giri yapmtr. 2007 senesinde Trkiye apnda gerekleen bir
yazlm gelitirme yarmasnda Trkiye ikinciliiyle gm madalya kazand.
Birok orta apta Windows - Based Client ve Enterprise uygulamalarda proje
yneticisi ve yazlm uzman olarak grev ald. uan 1. Snf rencisi olarak
Yeditepe niversitesi Bilgisayar ve retim Teknolojileri retmenlii eitimime
devam etmektedir.

30
Visual C# Kodlama Standartlar 31.12.2010 v1

Bahtiyar DLEK
1984 Amasya doumlu olan Bahtiyar DLEK, 16 yandan beri programlamayla
uramaktadr. 2008 ylnda Bilimer Biliim Akademisinden ald eitimle MCPD
olmutur. Sharepoint Developer sertifikas olan Bahtiyar, halen Bilgisayar
Mhendislii rencilerine danmanlk yapmaktadr.

rfan MEVSM
1982 Tekirda doumlu olan rfan Mevsim, Marmara niversitesi Bilgisayar ve
Kontrol retmenlii 2005 mezunu. 1998 ylndan bu yana gelen amatr
programlamann zerine 2007 ylnda Trkiyenin en byk beyaz eya
reticilerinden birinde profesyonel anlamda programlayama balad. Burada
geen 3 yln ardndan u anda iletme iinde ihtiya duyulan tm otomasyon ile
entegre, mobil ve SAP balantl sistemler zerine uygulama gelitirebilir
durumda.

Can YAPAN
2006 ylnda Bulgaristan Varna Teknik niversitesinde, Bilgisayar Sistemleri ve
Teknolojileri blmnde eitimine balamtr. Eitimi srasnda C# dili ve .Net
teknolojileri ile ilgilenmi ve birka projede yer almtr. Halen freelancer yazlm
gelitirip eitimine devam ediyor.

Hakan YAVUZ
2006 senesinde Asp ile Web programclna baladm. Ardndan Visual Basic 6.0
ile devam edip daha sonrasnda tekrar web programlama ile devam etme karar
alp php ve client tabanl dilleri renmeye baladm (javascript,ajax) daha sonra
.net in gelimesi ve yaygnlamas ile beraber c#.net ve vb.net ile devam
etmekteyim. Fakat arlm web programlama stnde.

Ycel YILDIRIM
Ycel YILDIRIM, 1981 Sivas doumludur.2005 yl Marmara ni. Bilgisayar
Mhendislii mezunu olup, be yl akndr yazlm dnyasnda aktif olarak rol
almaktadr. u an bir bankann bilgi ilem blmnde almaktadr.

31

You might also like