TiKS_VB v1.0.

Transkript

TiKS_VB v1.0.
Visual Basic.NET Kodlama Standartları
Versiyon Geçmişi
Tarih
Ver
Açıklama
Yazar(lar)
10.02.2011
1.0
Belge oluşturuldu
-
ii
Gözden
Geçiren(ler)
-
10.02.2011 v1.0
Künye
Proje Koordinatörü
Kadir Çamoğlu
Editör
Volkan Atasever
Kapak Tasarımı
Hakan Çamoğlu
Yazarlar
Volkan ATASEVER
Merve CEYLAN
Kadir ÇAMOĞLU
Burhan ÇETİNKAYA
Bahtiyar DİLEK
İrfan MEVSİM
Can YAPAN
Hakan YAVUZ
Yücel YILDIRIM
Gözden Geçirenler
Bahri Altan
Atagün Sarıbayraktar
Soykan Özçelik
Mesut Güneş
Kemal İkizoğlu
Erman Demirer
Haluk Aksoy
İbrahim Atay
iii
Đçindekiler
Önsöz ......................................................................................................................................... 4
Amaç ........................................................................................................................................ 5
Kapsam ................................................................................................................................... 5
Kullanım Şartları ................................................................................................................... 5
Kullanım Önerisi ................................................................................................................... 5
Önemli Açıklama .................................................................................................................. 5
Geri Bildirim........................................................................................................................... 5
1.
Dosya Organizasyonu ............................................................................................ 6
1.1
Klasör Yapısı ............................................................................................................... 6
1.2
Kaynak Kod Dosyaları ............................................................................................... 7
2.
Biçimlendirme ........................................................................................................... 8
2.1
Sınıf Yapısı .................................................................................................................. 8
2.2
Girintileme ve Kapsamı Belirleme .......................................................................... 10
2.3
Boşluklar .................................................................................................................... 10
3.
Açıklamalar .............................................................................................................. 11
3.1
Blok Açıklamalar ....................................................................................................... 11
3.2
Tek Satırlık Açıklamalar........................................................................................... 12
3.3
Satır İçi Açıklamalar ................................................................................................. 12
3.4
Dokümantasyon Amaçlı Açıklamalar..................................................................... 13
3.5
TODO : Açıklamalar ................................................................................................. 13
4.
Đsimlendirme Kuralları ........................................................................................ 14
4.1
Büyük/Küçük Harf Kullanımı ................................................................................... 14
4.2
Pascal/Camel Casing............................................................................................... 14
4.3
Visual Basic.NET Diline Özel Ayrılmış Kelimeler ................................................ 15
4.4
Büyük/Küçük Harf Hassasiyeti ............................................................................... 16
4.5
Kısaltmalar ................................................................................................................. 17
4.6
Kelime Seçimi ........................................................................................................... 18
4.7
“İsim Alanı” İsimlendirme ......................................................................................... 19
4.8
“Sınıf” İsimlendirme .................................................................................................. 20
4.9
“Ara Birim” İsimlendirme .......................................................................................... 20
4.10
“Öznitelik” İsimlendirme ........................................................................................... 21
4.11
“Numaralandırma” İsimlendirme............................................................................. 21
Visual Basic.NET Kodlama Standartları
4.12
“Sabit” ve “Salt Okunur” Alan İsimlendirme .......................................................... 22
4.13
“Statik” Alan İsimlendirme ....................................................................................... 22
4.14
Parametre İsimlendirme........................................................................................... 22
4.15
Metot İsimlendirme ................................................................................................... 23
4.16
Özellik İsimlendirme ................................................................................................. 23
4.17
Olay İsimlendirme ..................................................................................................... 23
4.18
Değişken İsimlendirme ve İlk Değer Atama.......................................................... 24
4.19
Kontrol İsimlendirme................................................................................................. 24
5.
2
Deyimler...................................................................................................................... 26
5.1
Basit Deyimler ........................................................................................................... 26
5.2
“Return” Deyimleri..................................................................................................... 26
5.3
“If, if-else, if else-if else” Deyimleri ......................................................................... 27
5.4
“Select” Deyimleri ..................................................................................................... 29
5.5
“For / Foreach” Deyimleri......................................................................................... 30
5.6
“While/do-while” Deyimleri....................................................................................... 31
5.7
İstisnai Durum Yönetimi ........................................................................................... 32
10.02.2011 v1.0
Terimler
Terim
Namespace
Class
Interface
Attribute
Enumeration
Property
Event
Constant
Readonly
Pascal Casing
Türkçe
İsim alanı
Sınıf
Ara birim
Öz nitelik
Numaralandırma
Özellik
Olay
Sabit
Salt okunur
-
Camel Casing
-
Açıklama
İsimler BÜYÜK harfle başlar. İsmi oluşturan ifade
birden fazla kelimeden oluşuyorsa, kelimelerin ilk
harfleri BÜYÜK harflerle yazılır. (OgrenciKaydet,
UcretHesapla, RaporYazdir)
İsimler küçük harfle başlar. İsmi oluşturan ifade
birden fazla kelimeden oluşuyorsa, isimdeki ilk
kelime küçük harfle başlar. Sonraki kelimeler
BÜYÜK harfle başlar. (yeniOgrenciKaydet,
ucretHesapla, raporYazdir)
3
Visual Basic.NET Kodlama Standartları
Önsöz
Özlü bir söz vardı yıllar önce okuduğum: “Bilgisayarların okuyacağı kodu yazmak kolay, önemli
olan insanların okuyabileceği kodu yazmak.” diyordu. İlk başta çok havalı gelen bu deyişi
sonrasında biraz düşünmek istedim.
Yazdığımız kodu bilgisayarın okuması yeterli değil mi? Zaten bilgisayar çalıştırmıyor mu onu?
Tamam işte, bilgisayar çalıştırıyorsa her şey yolunda demektir değil mi? Bazen. Altı ay önce
yazdığınız bir kodu tekrar açıp değiştirmek ihtiyacı hissettiğinizde kodlara bakıp hiç “Yahu ne
yapmışım ben? İyi kod yazmışım valla” dediğiniz oldu mu? Eminim olmuştur. Sonuçta hepimiz
geçtik bu yollardan. İster eski projelerinizdeki kodları hatırlayamayan ve kodu okuyamayan siz
olsun, ister bir projede beraber çalıştığınız arkadaşlarınız olsun tüm bu senaryolar eninde
sonunda yazdığınız kodların bir insan tarafından da okunması gerekeceğine dair ipuçları
veriyor.
Ekranınızdaki bu PDF veya belki de çıktısını aldığınız bu doküman size bu yolda yardımcı olma
amacı taşıyor. Tabi ki siz de kendi tekniklerinizi ve kod yazım kurallarınızı oluşturabilir ve
uygulayabilirsiniz fakat bir kısım genel geçer, artık gelenekselleşmiş kurallara uymanın da farklı
faydaları olacaktır. Tavsiyem, eğer tek başınıza kod yazıyorsanız en azından ileriye dönük hem
kişisel hem de proje bazında bir yatırım olarak bu kurallara uymaya çalışın. Şaka değil, böylece
dünya hepimiz için (yazılım geliştiriciler) daha güzel bir yer olabilir. Eğer bir ekiple kod
yazıyorsanız önce şirketinizde böyle bir doküman olup olmadığını öğrenin. Varsa ne kadar
uygulandığını araştırın, gerekiyorsa revizyonlar önerin. Böyle bir doküman yoksa şirketinizde
hemen bu dokümanı basıp herkese dağıtın. Yazılan bir kodun insanlar tarafından
okunabilirliğinin uzun vadede kurumlara ciddi karlar getireceğini de yöneticinizle paylaşmanızda
fayda olacaktır.
Artık top sizde! Bir sonraki adımı atıp insan dostu kodlar yazmak elinizde. Benim son olarak
yapmak gereken bir şey daha var; bu dokümanın oluşturulmasında, hazırlanmasında ve belki
de size ulaşmasında birçok dostun, kardeşimizin emeği var. Hepsine daha iyi bir yazılım
dünyasına katkıları için sonsuz teşekkür ediyorum. Emeğinize sağlık!
Daron Yöndem
Microsoft Regional Director
INETA MEA Vice President
4
10.02.2011 v1.0
Giriş
Amaç
Bu dokümanı geliştirmekteki amacımız, VB.NET programlama diliyle geliştirilecek
projelerde kullanılmak üzere, kodlama standartları için fikir verecek bir “örnek”
oluşturmaktır.
Kapsam
Bu doküman, VB.NET Kodlama Standartları belgesinin ilk sürümüdür. Bu nedenle
isimlendirme, biçimlendirme ve temel kodlama yapıları gibi en temel konulara
değinilmiştir.
Kullanım Şartları
Bu doküman bir grup çalışmasının ürünüdür. Belgenin sahipleri teknik olarak künyede
yazılı olan (gözden geçirenler hariç) isimlerdir. Belgeyi, kaynak belirtmek koşuluyla
tamamen ya da kısmen kullanabilirsiniz. Kopyalayabilir, çoğaltabilir ve dağıtabilirsiniz.
Kullanım Önerisi
Bu belgeyi geliştireceğiniz projelerde olduğu gibi kullanmanız mümkün olabileceği gibi,
kendi standartlarınızı oluşturmak için temel almak üzere de kullanabilirsiniz. Özellikle
daha önceden edindiğiniz yazılım geliştirme alışkanlıklarınız varsa, bunları
dokümandakilerle karşılaştırarak uygun gördüğünüzü tercih edebilirsiniz.
Önemli Açıklama
Bu dokümanda belirtilen hiçbir kodlama standardı, ulusal ya da uluslararası genel bir
standardı ifade etmez. Bu dokümanda açıklanan standartlar, içeriği geliştirenlerin ve
proje koordinatörünün tecrübeleriyle oluşturdukları, kendi projelerinde uyguladıkları
kodlama yaklaşımlarıdır. Bu dokümanda yazılanları VB.NET programlama dilinin, ilişkili
teknolojilerin ya da yazılım mühendisliğinin temel kuralları olarak görmeyin. Dokümanı
geliştirenlerin hiçbir şekilde en doğru ve en iyi yazılım kodlama standardını oluşturmak
gibi bir iddiası yoktur. Buradaki amaç bir öneri ve/veya örnek oluşturmaktır.
Geri Bildirim
Bu proje gönüllük esasına dayalı olarak, geniş bir katılımcı kitlesiyle hazırlanmıştır. Bu
dokümanın olgunlaşması ve daha kaliteli hale gelmesi için, dokümanı inceleyen,
kullanan herkesin geri bildirimi bizim için çok değerli olacaktır. Lütfen dokümanla ilgili
hataları, önerilerinizi ve her türlü geri bildiriminizi aşağıdaki web ve eposta adresleri
üzerinden bizimle paylaşın.
Eposta: [email protected]
http://tiksprojesi.blogspot.com/
http://www.facebook.com/#!/group.php?gid=29006737231
http://www.chip.com.tr/blog/kadircamoglu/
5
Visual Basic.NET Kodlama Standartları
1. Dosya Organizasyonu
1.1 Klasör Yapısı
Kullanım amaçlarına yönelik olarak, kaynak kodlarını bir arada tutacak şekilde klasör
yapısı oluşturun. Klasörün amacına yönelik isimlendirme yapın. Böylelikle hangi
dosyanın nerede olduğu kolayca bulunabilir.
İYİ:
6
10.02.2011 v1.0
KÖTÜ:
1.2 Kaynak Kod Dosyaları
Kaynak kod dosyalarını, klasör yapısına uygun olarak amaçlarına uygun yerde
oluşturun.
İYİ:
7
Visual Basic.NET Kodlama Standartları
KÖTÜ:
2. Biçimlendirme
2.1 Sınıf Yapısı
Sınıfların isimlendirilmesinde “Pascal Casing” kullanın.
İsimlendirmede, ismin sonuna Class veya Sınıf kelimesi eklemeyin.
Sınıf Erişim belirteçlerini (private, public, internal) mutlaka belirtin.
Her sınıf için mutlaka en az bir yapıcı metot (Constructor) oluşturun.
Parçalı (partial) sınıflar kullandığınızda, her bir parça içerisinde, diğer parçaların yerini
belirtin.
Yapıcı metodumuzun içinde parametrelerinizi eşleştirirken mutlaka “Me” ekini kullanın.
İYİ:
Public Class HastaIlac
'<summary>Hastanın kullandığı ilaç Bilgisi</summary>
Public Sub New(ByVal ilacBarkod As String, _
ByVal ilacAdi As
String)
End Sub
End Class
KÖTÜ
Public Class HastaIslemleriSinifi
Public Sub New()
End Sub
End Class
8
10.02.2011 v1.0
Sınıfları oluştururken girintileri doğru şekilde uygulamaya dikkat edin.
İYİ:
Public Class HastaIlac
Private ilacAdi As String
Public Property IlacAd() As String
Get
Return IlacAdi
End Get
Set(ByVal value As String)
ilacAdi = value
End Set
End Property
Private ilacBarkod As String
Public Property IlacBarkodu() As String
Get
Return ilacBarkod
End Get
Set(ByVal value As String)
ilacBarkod = value
End Set
End Property
'<summary>Hastanın kullandığı ilaç Bilgisi</summary>
Public Sub New(ByVal ilacBarkod As String,
ByVal ilacAdi As
String)
Me.IlacAd = ilacAdi
Me.IlacBarkodu = IlacBarkodu
End Sub
End Class
KÖTÜ:
Public Class HastaIlac
Private ilacAdi As String
Public Property IlacAd() As String
Get
Return ilacAdi
End Get
Set(ByVal value As String)
ilacAdi = value
End Set
End Property
Private ilacBarkod As String
Public Property IlacBarkodu() As String
Get
Return ilacBarkod
End Get
Set(ByVal value As String)
ilacBarkod = value
End Set
End Property
'<summary>Hastanın kullandığı ilaç Bilgisi</summary>
Public Sub New(ByVal ilacBarkod As String,
ByVal ilacAdi As String)
IlacAd = ilacAdi
IlacBarkodu = IlacBarkodu End Sub
End Class
9
Visual Basic.NET Kodlama Standartları
2.2 Girintileme ve Kapsamı Belirleme
Girinti kullanırken dikkatli olun. Girinti (sekme/tab) ve boşlukları uygun şekilde kullanın.
Kod ya da açıklama yazarken boşluk kullanmayın. İsim alanı, sınıf, metot, koşul, döngü,
istisnai durum yönetimi bloklarının her biri için ayrıca girintileme yapın.
İYİ:
Public Class HastaIslemleri 'Hasta Kayıt işlemleri
Public Sub New() 'Yapıcı Metodumuz...
End Sub
'Hasta kayıt edilir
Public Sub HastaKayit(ByVal tcKimlikNo As String)
End Sub
End Class
KÖTÜ:
Public Class HastaIslemleri 'Hasta Kayıt işlemleri
Public Sub New() 'Yapıcı Metodumuz...
End Sub
Public Sub HastaKayit(ByVal tcKimlikNo As String)
End Sub End Class
End Class
2.3 Boşluklar
Visual Studio birçok durumda boşluk durumlarını sizin için hallediyor... Ancak fonksiyonlar
ve sublar arasındaki boşlukları sizin düzenlemeniz gerekiyor.
İYİ:
Private Function YasHesapla(_
ByVal dogumGunu As DateTime) As Integer
' ...
End Function
Private Function YasHesapla(_
ByVal dogumGunu As DateTime, _
ByVal hesaplanacakTarih As DateTime) As Integer
' ...
End Function
10
10.02.2011 v1.0
KÖTÜ:
Private Function YasHesapla(_
ByVal dogumGunu As DateTime) As Integer
' ...
End Function
Private Function YasHesapla(_
ByVal dogumGunu As DateTime, _
ByVal hesaplanacakTarih As DateTime) As Integer
' ...
End Function
3. Açıklamalar
3.1 Blok Açıklamalar
Blok açıklamalarını, fonksiyon, modül veya proje gibi kodların başında, daha sonraki
kullanımlarda gerekli olabilecek açıklamaları girmek için kullanın. Açıklamaları, çok
detaya inmeden genel hatlarıyla kod bloğunun kullanımını ve gerekli olabilecek diğer
bilgileri kullanarak oluşturun.
İYİ:
' Satış fiyatı hesaplaması 25.10.2011 Đrfan Mevsim
'
' Fonksiyon birim fiyatı ve KDV orani olarak gönderilen
' bilgilerin satış fiyatını geri döndürür.
'
' Örnek Kullanım
' Dim SatisFiyati as Double = SatisHesapla(1000,18)
'
' Dönüş Değeri --> 1018.0 (double)
'
Private Function SatisHesapla _
(ByVal BirimFiyat As Integer, _
ByVal KdvOrani As Integer) _
As Double
Return BirimFiyat + KdvOrani%
End Function
KÖTÜ:
' Satış fiyatı hesaplaması (yetersiz açıklama)
Private Function SatisHesapla _
(ByVal BirimFiyat As Integer, _
ByVal KdvOrani As Integer) _
As Double
Return BirimFiyat + KdvOrani%
End Function
11
Visual Basic.NET Kodlama Standartları
KÖTÜ:
Private Function SatisHesapla _
(ByVal BirimFiyat As Integer, _
ByVal KdvOrani As Integer) _
As Double
' Dönüş Değeri --> 1018.0 (yanlış ve yetersiz açıklama)
Return BirimFiyat + KdvOrani%
End Function
3.2 Tek Satırlık Açıklamalar
Tek satırlık açıklamaları alt kısımdaki kod bloğunu açıklar nitelikte, belirli işlemlerin
gerçekleştiği kod bloklarının başına yazın.
İYİ:
' Satış fiyatı hesaplaması
Dim BirimFiyat As Integer = 1000
Dim KdvOrani As Integer = 18
Dim Miktar As Integer = 3
Dim SatisFiyati As Double
= (Miktar * BirimFiyat) + KdvOrani%
KÖTÜ:
' Birim fiyat tanımlaması
Dim BirimFiyat As Integer = 1000
Dim KdvOrani As Integer = 18
Dim Miktar As Integer = 3
Dim SatisFiyati As Double
= (Miktar * BirimFiyat) + KdvOrani%
3.3 Satır İçi Açıklamalar
Satır içi açıklamaları, sadece bulunduğu satırdaki ifadeyi açıklamak ve o satıra ait
olan bilgileri girmek için kullanın.
İYİ:
Dim KullaniciAdi As String = "Ahmet" ' Kullanıcının Adı
Dim KullaniciSoyadi As String
= "Kozdağ" ' Kullanıcının Soyadı
Dim KullaniciSicil As String
= "D201056" ' Kullanıcının Sicil No
KÖTÜ:
Dim KullaniciAdi As String = "Ahmet" ' Kullanıcı Bilgileri
Dim KullaniciSoyadi As String = "Kozdağ"
Dim KullaniciSicil As String = "D201056"
12
10.02.2011 v1.0
KÖTÜ:
Dim KullaniciAdi As String = "Ahmet" ' Kullanıcı Bilgileri
Dim KullaniciSoyadi As String
= "Kozdağ" ' Kullanıcı Bilgileri
Dim KullaniciSicil As String
= "D201056" ' Kullanıcı Bilgileri
3.4 Dokümantasyon Amaçlı Açıklamalar
Dokümantasyon amaçlı açıklamaları; yazdığınız herhangi bir sınıf ya da fonksiyonun
açıklamasını yapmak amacıyla kullanın. Açıklama yaptığınız metoda uygun olarak
özet (summary), parametre ve dönüş değerleri için açıklamalar yazın.
İYİ:
'/ <summary>
'/ Basit bir Fonksiyon.</summary>
'/ <param name="yazi">
'/ Gelen yaziyi txtMetin.text 'e eşitler</param>
Public Sub MetinYaz(ByVal yazi As String)
txtMetin.Text = yazi
End Sub
3.5 TODO : Açıklamalar
TODO: açıklamalarını projenin herhangi bir anında aklınıza gelen ama daha sonra
yapılması gereken işlemler için kullanın. Böylece projenin hangi aşamasında hangi
değişikleri yapmanız gerektiğini Build etmeden önce TODO: kelimesini projenizde
arayarak rahatlıkla hatırlayabilirsiniz.
İYİ:
' TODO: Hesaplamadan önce KDV oranlarının güncelliğini
kontrolet
Dim SatisFiyati As Double
= (Miktar * BirimFiyat) + KdvOrani%
KÖTÜ:
' TODO: Satış fiyatı hesaplanması
Dim SatisFiyati As Double
= (Miktar * BirimFiyat) + KdvOrani%
13
Visual Basic.NET Kodlama Standartları
4. Đsimlendirme Kuralları
4.1 Büyük/Küçük Harf Kullanımı
Özellik ve değişken gibi öğeleri isimlendirirken kelimelerin ilk harflerini küçük diğer
harflerini büyük kullanın. Sınıf ve metotlarda ise ilk harfleri büyük kullanın.
İYİ:
Dim toplamaYap As Integer
…
Dim cikarmaYap As String
…
Public Property ToplamaIslemi(ByVal ilkSayi As Integer,
ByVal ikinciSayi As Integer)
As Integer
…
Class Kisiler
KÖTÜ:
Dim TOPLAMAYAP As Integer
…
Dim CIKARMAyap As String
…
Public Property toplamaisleMI(ByVal ilkSAYI As Integer,
ByVal ikinciSAYI As Integer)
As Integer
…
Class KISILER
4.2 Pascal/Camel Casing
İsimlendirme yaparken Pascal/Camel isimlendirmeyi doğru yapmak için aşağıdaki
tabloyu kullanın. Metotlarda, alanlarda (field) ve özelliklerde (properties) public,
private, internal da olsa Pascal Casing kullanın.
Proje dosyası
Kaynak dosyası
Sınıf (class)
Yapı (struct)
Arabirim (interface)
Metot
Özellik (Property)
Alan (public field)
Alan (diğer Field)
Numaralandırma (Enum)
Delegate (public)
Delegate (diğer)
Değişken
Parametre
Olay (event)
14
Pascal Casing
Pascal Casing
Pascal Casing
Pascal Casing
Pascal Casing
Pascal Casing
Pascal Casing
Pascal Casing
Camel Casing
Pascal Casing
Pascal Casing
Camel Casing
Camel Casing
Camel Casing
Camel_Casing
HastaTakibi.vbproj
HTLogo.jpg
Kisi
KisiListeBilgisi
IKisiselBilgiler
KisiEkle
Adi, Soyadi
TCKimlikNo
dogumTarihi
KayitDurumu
KayitSilindi
kayitIsleniyor
vergiNumarasi
ad, soyad, yas
btnKaydet_Click
10.02.2011 v1.0
4.3 Visual Basic.NET Diline Özel Ayrılmış Kelimeler
Aşağıdaki kelimeler Visual Basic.NET programlama diline özeldir. Bu kelimeleri
farklı büyük/küçük harf kombinasyonlarında da olsa kullanmayın.
AddHandler
DirectCast
Module
Shadows
AddressOf
Do
MustInherit
Shared
Alias
Double
MustOverride
Short
And
Each
MyBase
Single
AndAlso
Else
MyClass
Static
As
ElseIf
Namespace
Step
Boolean
End
Narrowing
Stop
ByRef
EndIf
New
String
Byte
Enum
Next
Structure
ByVal
Erase
Not
Sub
Call
Error
Nothing
SyncLock
Case
Event
NotInheritable
Then
Catch
Exit
NotOverridable
Throw
CBool
FALSE
Object
To
CByte
Finally
Of
TRUE
CChar
For
On
Try
CDate
Friend
Operator
TryCast
CDec
Function
Option
TypeOf
CDbl
Get
Optional
Variant
Char
GetType
Or
Wend
CInt
Global
OrElse
UInteger
Class
GoSub
Overloads
ULong
CLng
GoTo
Overridable
UShort
CObj
Handles
Overrides
Using
Const
If
ParamArray
When
Continue
Implements
Partial
While
CSByte
Imports
Private
Widening
CShort
In
Property
With
CSng
Inherits
Protected
WithEvents
CStr
Integer
Public
WriteOnly
CType
Interface
RaiseEvent
Xor
CUInt
Is
ReadOnly
#Const
15
Visual Basic.NET Kodlama Standartları
CULng
IsNot
ReDim
#Else
CUShort
Let
REM
#ElseIf
Date
Lib
RemoveHandler
#End
Decimal
Like
Resume
#If
Declare
Long
Return
Default
Loop
SByte
Delegate
Me
Select
Dim
Mod
Set
4.4 Büyük/Küçük Harf Hassasiyeti
Türkçe karakterler farklı algılandığından kodlama içerisinde Türkçe karakterler
kullanmayın. Küçük i ve bu karakteri büyük yazarken I kullanın. Ç yerine c, ş yerine
s, ğ yerine g, ü yerine u, ö yerine o tercih edin.
İYİ:
Dim kacisVeIlk As Integer
Dim ogrenmeVeEgitim As String
KÖTÜ:
Dim KaçışveĐlk As Integer
Dim ÖğrenmeVeEğitim As String
Fonksiyonlarda parametre kullanırken, verilen tek karakterli isimleri büyük veya
küçük versiyonlarını yazarak kullanmayın.
İYİ:
Public Property ToplamaIslemi(ByVal istenenSayi As Integer,
ByVal verilenSayi As Integer)
As Integer
KÖTÜ:
Public Property ToplamaIslemi(ByVal b As Integer,
ByVal B As Integer)
As Integer
Aynı isimli fakat harflerinin büyüklüğü küçüklüğü farklı değişkenler tanımlamayın.
İYİ:
Dim denemeSayisi As Integer
Dim eldeSayisi As Integer
KÖTÜ:
Dim deneme As Integer
Dim DENEME As Integer
16
10.02.2011 v1.0
Farklı büyük/küçük harf hassasiyetlerinde, aynı isimli metotlar yazmayın.
İYİ:
Private Sub ToplamaHesabi()
End Sub
Private Sub CikarmaHesabi()
End Sub
KÖTÜ:
Private Sub hesapla()
End Sub
Private Sub Hesapla()
End Sub
4.5 Kısaltmalar
Sınıf, özellik, metot, değişken gibi öğelere isim verirken çok zorunlu olmadıkça
kısaltma kullanmayın.
İYİ:
Dim kullaniciAdi As Integer
Dim yetkiliMi As Boolean
…
Private Sub KullaniciKaydet()
KÖTÜ:
Dim kulAdi As Integer
Dim ytklMi As Boolean
…
Private Sub KullKyd()
Eğer aynı isme sahip aynı türden iki veya daha fazla öğe kullanılacaksa bunları
numaralandırmayı tercih edin.
İYİ:
Dim ogrenci1 As Integer
Dim ogrenci2 As Integer
KÖTÜ:
Dim ogrenciilk As Integer
Dim ogrenciiki As Integer
17
Visual Basic.NET Kodlama Standartları
4.6 Kelime Seçimi
Kolay okunabilir, tanımlayıcı isimleri seçin.
İYİ:
Private _urunAdi As String
Public Property UrunAdi() As String
Get
Return _urunAdi
End Get
Set(ByVal value As String)
_urunAdi = value
End Set
End Property
KÖTÜ:
Private _adiUrun As Integer
Public Property AdiUrun() As Integer
Get
Return _adiUrun
End Get
Set(ByVal value As Integer)
_adiUrun = value
End Set
End Property
Tanımlayıcı isimlerinizi kısa tutmak için onları anlamsızlaştırmayın.
İYİ:
Private _kullaniciAdi As String
Public Property KullaniciAdi() As String
Get
Return _kullaniciAdi
End Get
Set(ByVal value As String)
_kullaniciAdi = value
End Set
End Property
KÖTÜ:
Private _kAdi As String
Public Property kAdi() As String
Get
Return _kAdi
End Get
Set(ByVal value As String)
_kAdi = value
End Set
End Property
18
10.02.2011 v1.0
Tanımlayıcılarınızı isimlendirirken hiçbir zaman tire “-”, alttan tire “_” veya alfanumerik olmayan karakterler “!@#$%^&*()” kullanmayın.
İYİ:
Private _dogumTarih As Date
Public Property DogumTarihi() As Date
Get
Return _dogumTarih
End Get
Set(ByVal value As Date)
_dogumTarih = value
End Set
End Property
KÖTÜ:
Private _dogumTarih As DateTime
Public Property Dogum-Tarihi() As DateTime
Get
Return _dogumTarih
End Get
Set(ByVal value As DateTime)
_dogumTarih = value
End Set
End Property
Tanımlayıcılarınızı hiçbir zaman Macar Notasyonu - Hungarian Notation- ile
isimlendirmeyin.
KÖTÜ:
Dim
Dim
Dim
Dim
Dim
Dim
u32Identifier As Integer
bBusy As Boolean
chInitial As Char
dbPi As Double
rgStudents As String() = New String(4) {}
hwndForm As Form1
4.7 “İsim Alanı” İsimlendirme
İsim alanı adlandırırken, “Pascal Casing” tipi isimlendirme kullanın. Büyük harfle
başlayıp her bir kelimenin ilk harfini büyük harf kullanarak isim verin. Kelimeler
arasında “_” veya “-” benzeri ayraçlar kullanmayın. İsim alanı adlandırırken,
proje/assembly adı ile aynı adı kullanın. Kullandığınız dizinlerin adlarını, isim alanı
adlarında da kullanın.
İYİ:
KodlamaStandartlari.vbproj
namespace KodlamaStandartlari
KodlamaStandartlari.Models.dll
namespace KodlamaStandartlari.Models
KodlamaStandartlari.vbproj projesinde Models dizini
namespace KodlamaStandartlari.Models
19
Visual Basic.NET Kodlama Standartları
KÖTÜ:
KodlamaStandartlari.vbproj
namespace Kodlama
KodlamaStandartlari.Models.dll
namespace KodlamaStandartlari.Modeller
KodlamaStandartlari.vbproj projesinde Models dizini
namespace KodlamaStandartlari.Modeller
4.8 “Sınıf” İsimlendirme
Sınıflara ad verirken, Pascal tipi isimlendirme kullanın. Büyük harfle başlayıp her bir
kelimenin ilk harfini büyük harf kullanarak isim verin. Kelimeler arasında “_” veya “-”
benzeri ayraçlar kullanmayın. Sınıflara ad verirken, isim veya isim öbeği kullanın.
Sınıflara adlarında, “Sınıf”, “Class” veya “C” gibi ifadeler kullanmayın.
İYİ:
Public Class Araba
…
Internal Class Ucurtma
…
Private Class UcakMotoru
KÖTÜ:
Public Class Yap
…
Internal Class ClassUcurtma
…
Internal Class CucurtmaSinifi
…
Private Class UcakmotoruClass
4.9 “Ara Birim” İsimlendirme
Ara birimlerinizi uygulayacağınız sınıfların isimleriyle birlikte başlarına “I” harfi
getirerek yazın. Ara biriminizi isimlendirirken her iki kelimenin ilk harfleri büyük
olacak şekilde isimlendirin.(PascalCasing)
İYİ:
Public Class Takip
Implements ITakip
Public Interface ITakip
Sub StokTakip(ByVal urunAdet As Integer)
End Interface
Public Sub StokTakip1(ByVal urunAdet As Integer)
Implements
ITakip.StokTakip
Me.urunAdet = urunAdet.ToString()
End Sub
End Class
20
10.02.2011 v1.0
KÖTÜ:
Public Class Takip
Implements StokInterface
Public Interface StokInterface
Sub StokTakip(ByVal urunAdet As Integer)
End Interface
Public Sub StokTakip1(ByVal urunAdet As Integer)
Implements
ITakip.StokTakip
Me.urunAdet = urunAdet.ToString()
End Sub
End Class
4.10
“Öznitelik” İsimlendirme
Kendi geliştirdiğiniz “öznitelik” sınıflarınızı isimlendirirken, sınıf isminizin sonunda
“Attribute” kelimesini getirin.
İYİ:
<AttributeUsage(AttributeTargets.Class)> _
Public Class AttributeTakip
…
End Class
KÖTÜ:
<AttributeUsage(AttributeTargets.Class)> _
Public Class Takip
…
End Class
4.11
“Numaralandırma” İsimlendirme
Numaralandırmalarınızı isimlendirirken “Pascal Casing” isimlendirme kuralını dikkate
alın. Numaralandırma isimlerinizin sonuna “enum” yazmayın. Numaralandırmalarınız
için tekil isimler seçin.
İYİ:
Enum OnemDerecesi
Yuksek = 3
Orta = 2
Dusuk = 1
End Enum
KÖTÜ:
Enum OnemDereceleriEnum
Yuksek = 3
Orta = 2
Dusuk = 1
End Enum
21
Visual Basic.NET Kodlama Standartları
4.12 “Sabit” ve “Salt Okunur” Alan İsimlendirme
“Sabit” ve “Salt Okunur” alanlar isimlendirilirken; isim, isim tamlaması ve (çok
uzunsa) anlamlı kısaltmaları; her kelimenin ilk harfi büyük olacak şekilde kullanın.
(PascalCasing)
İYİ:
Public Const AySayisi As Integer = 12
Public Const HaftaSayisi As Integer = 52
Public ReadOnly GunSayisi As Integer = 365
KÖTÜ:
Public Const Ay_Sayisi As Integer = 12
Public Const haftasayisi As Integer = 52
Public ReadOnly _Gun_Sayisi As Integer = 365
4.13
“Statik” Alan İsimlendirme
“Statik” alanlar isimlendirilirken; isim, isim tamlaması ve (çok uzunsa) anlamlı
kısaltmaları; her kelimenin ilk harfi büyük olacak şekilde kullanın. (PascalCasing)
İYİ:
Public Shared Fiyat As Integer
Public Shared ToplamSaat As Integer
KÖTÜ:
Public Shared fyt As Integer
Public Shared fiyat As Integer
Public Shared toplam_saat As Integer
4.14
Parametre İsimlendirme
Parametre isimlendirilirken; içeriğine göre anlamlı olarak, isim, isim tamlaması ve
(çok uzunsa) anlamlı kısaltmaları; birinci kelimenin ilk harfi küçük bunu takip eden
kelimelerin baş harfleri büyük olacak şekilde kullanın. (Camel Casing)
İYİ:
Private Sub KullaniciKaydet(kullaniciAdi As String, _
parola As String)
End Sub
KÖTÜ:
Private Sub KullaniciKaydet(kul_adi As String, _
prl As String)
End Sub
22
10.02.2011 v1.0
4.15
Metot İsimlendirme
Metotlarınızı isimlendirirken “Pascal” isimlendirme kuralını kullanın.(Pascal Casing)
Metot parametreleriniz için “Camel” isimlendirme kuralını kullanın.(Camel Casing)
Metotlarınızı fiille veya fiil cümleleriyle isimlendirin.
İYİ:
Public Function Topla(ByVal birinciSayi As Integer,
ByVal ikinciSayi As Integer) As
Integer
Return birinciSayi + ikinciSayi
End Function
KÖTÜ:
Public Function Toplama (ByVal BirinciSayi As Integer,
ByVal IkinciSayi As Integer) As
Integer
Return BirinciSayi + IkinciSayi
End Function
4.16
Özellik İsimlendirme
Özelliklerinizi isimlendirirken Pascal isimlendirme kuralını kullanın.(Pascal Casing)
Özelliklerinizi isim ve isim tamlamalarıyla isimlendirin. Özelliklerinizin tiplerine uygun
isimlendirme yapın. Özelliklerinizi isimlendirirken başlarına Get veya Set getirmekten
sakının.
İYİ:
Public IsimSoyisim As Integer
Public OdemeTarihi As Date
'OnemDerecesi Enum bir tipe sahiptir.
Public OnemDerecesi As OnemDerecesi
KÖTÜ:
Public Getisim As String
Public OdemeTarihiniAl As Date
Public SetOnemDerecesi As OnemDerecesi
4.17
Olay İsimlendirme
Olay(Event) işleyici isimlendirmede “on” ifadesini kullanmayın.
İYİ:
Event EventHandler As ciftikla
KÖTÜ:
Event EventHandler As ONciftikla
23
Visual Basic.NET Kodlama Standartları
Tek bir “event” isimlendiriyorsanız geçmiş zamanda fiiller kullanın.
İYİ:
Event EventHandler As mesajYollandi
Event EventHandler As ciftTiklandi
KÖTÜ:
Event EventHandler As mesajYolla
Event EventHandler As ciftTikla
4.18
Değişken İsimlendirme ve İlk Değer Atama
Vereceğimiz isimler Türkçe olmalıdır. Tanımlama yaparken kullanacağımız isimlerde
,kısaltma yapılacaksa da anlamlarını kaybetmemelerine dikkat edilmelidir.
İYİ:
Class ResimBoyutlandirici
Dim resimyolu As String = "c:"
Dim cozunurluk As String = "1024x768"
End Class
KÖTÜ:
Class WindowsFormsApplication1
Dim resimyolu As String = "c:"
Dim cozunurluk As String = "1024x768"
End Class
4.19
Kontrol İsimlendirme
Kontrol İsimlendirirken, kontrollerin önüne, ilgili kontrolü belirtecek bir kısaltma
kullanın.
İYİ:
Private Sub btnBaslat_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
End Sub
Private Sub lblAciklama_Click(ByVal sender As _
System.Object,
ByVal e As System.EventArgs)
End Sub
KÖTÜ:
Private Sub Baslat_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
End Sub
Private Sub Aciklama_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
End Sub
24
10.02.2011 v1.0
Kontrol isimlendirme için aşağıdaki tabloyu kullanın.
Kontrol
Checkbox
RadioButton
Label
Textbox
DataGrid
Button
ImageButton
Image
PlaceHolder
Table
CheckBoxList
RadioButtonList
Radio(Option)Button
Hyperlink
DropDownList
ListBox
DataList
Repeater
Panel
Validators
ComboBox
DropDownList
GridView
hScrollBar
vScrollBar
Picture
Container
DataColumn
DataGridDateTimePickerColumn
DataGridTableStyle
DataGridTextBoxColumn
DataReader
DataRow
DataSet
DataTable
GroupBox
HashTable
ImageList
Integer
Literal
MarshallByRefObject
Mainmenu
MenuItem
MD5
MDI-Frame
MDI-Sheet
NumericUpDown
PictureBox
RadioButton
StatusBar
TabControl
TabPage
ToolBar
ToolBarButton
Kısaltması
chk
rdb
lbl
txt
dtg
btn
İmb
img
phd
tbl
cbl
rbl
opt
lnk
ddl
lst
dtl
rpt
pnl
val
cmb
ddl
gvw
hsc
vsc
pic
ctr
dcol
dgdtpc
dgts
dgtbc
drd
drw
dset
dtable
gbx
htbl
iml
int
ltr
rmt
mm
mi
md5
frame
sheet
nud
pbx
rbtn
stb
tabctrl
tabpage
tbr
tbb
25
Visual Basic.NET Kodlama Standartları
5. Deyimler
5.1 Basit Deyimler
Basit deyimleri yazarken her bir satıra sadece bir deyim yazın. Deyimleri açık ve
okunur şekilde kodlayın.
İYİ:
Dim sayi1 As Integer = 5
Dim sayi2 As Integer = 5
Dim toplam As Integer = sayi1 + sayi2
KÖTÜ:
Dim sayi2 As Integer = 5,sayi2 As Integer = 5
Dim toplam As Integer = sayi1 + sayi2
5.2 “Return” Deyimleri
Fonksiyonlardan değer döndürürken her bir koşul için ayrı ayrı değer döndürmeyin.
Koşulları kontrol ettikten sonra fonksiyonunun sonunda tek bir “return” deyimi
kullanın.
İYİ:
Public Function MusteriAdiGetir() As String
'MusteriAdi Getir Fonksiyonu Tanımlama
Dim musteriAd As String = ""
'musteriAd string değişkeni tanımlama ve atama
Dim musteriNo As Integer = 1
'musteriNo eğişkeni tanımlama ve atama
If (musteriNo = 1) Then
musteriAd = "Yücel Yıldırım"
Else
musteriAd = "Müşteri Bulunamadı"
End If
Return (musteriAd)
End Function
KÖTÜ:
Public Function MusteriAdiGetir() As String
'MusteriAdi Getir Fonksiyonu Tanımlama
Dim musteriAd As String = ""
'musteriAd string değişkeni tanımlama ve atama
Dim musteriNo As Integer = 1
'musteriNo değişkeni tanımlama ve atama
If (musteriNo = 1) Then
Return "Yücel Yıldırım"
Else
Return "Müşteri Bulunamadı"
End If
End Function
26
10.02.2011 v1.0
5.3 “If, if-else, if else-if else” Deyimleri
Hemen hemen her programlama dilinde olan deyimlerdir. Bir şart belirtilerek
programın ona göre davranmasını sağlar. Bu yüzden bu deyimlerin standartlara göre
yazılması oldukça önemlidir.
Öncelikle genel olarak “if” deyimindeki yanlışlıkları ve olması gerekenleri gösterelim.
Koşul deyiminiz tek satırlık ise end if kullanmayın.
iYi:
If ("1" = "1") Then MessageBox.Show("1 eşittir 1")
KÖTÜ:
If ("1"="1") Then
MessageBox.Show("1 eşittir 1")
End If
Karmaşık koşulları “if” bloğu içine yazmayın. Bu tip koşulları blok öncesinde kontrol
ederek sonucu değişkenlere yükleyerek “if” koşuluna yazın.
İYİ:
enYuksekNotMu = (notum > enYuksekNot)
oncekiEnYuksekNotMu = (notum = enYuksekNot)
gecerliNotmu = (notum < maksimumNot)
If ((enYuksekNotmu And Not oncekiEnyuksekNotmu) _
And gecerlinotmu) Then
…
End If
KÖTÜ:
If (((notum > enYuksekNot) And (notum <> enYuksekNot)) And
(notum < maksimumNot))
Then
End If
Veri tipi bool olan değişkenleri direkt olarak kullanın. “=” ya da “not” ile tekrar işleme
sokmayın.
İYİ:
If (donenDeger) Then
End If
If (Not donenDeger2) Then
End If
KÖTÜ:
If (donenDeger = true) Then
End If
If (donenDeger2 = false) Then
End If
27
Visual Basic.NET Kodlama Standartları
Koşul yapılarında gereksiz yere koşulun tersini “if” ile kullanmayın. Bunun yerine else
kullanın.
İYİ:
If (donenDeger) Then
MessageBox.Show("True Döndü")
Else
MessageBox.Show("False Döndü")
End If
KÖTÜ:
If (donenDeger) Then
MessageBox.Show("True Döndü")
End If
If (Not donenDeger2) Then
MessageBox.Show("False Döndü")
End If
İç içe “if” blokları yerine mümkünse “else if” yapısı kullanın.
İYİ:
If (ilkDeger > ikinciDeger) Then
MessageBox.Show("1. değer büyük")
ElseIf (ilkDeger < ikinciDeger) Then
MessageBox.Show("2. değer büyük")
Else
MessageBox.Show("2 side eşit")
End If
KÖTÜ:
If (ilkDeger = ikinciDeger) Then
MessageBox.Show("2 side eşit")
Else
If (ilkDeger > ikinciDeger) Then
MessageBox.Show("1. değer büyük")
Else
MessageBox.Show("2. değer büyük")
End If
End If
28
10.02.2011 v1.0
5.4 “Select” Deyimleri
Sıralı koşul durumlarının değerlendirilmesine gerek olmayan, belirli bir değere göre
belirli bir işlemin yapılması gereken durumlarda “Select” kullanın. Select deyiminde
mümkün olduğunca listeleme (enum) kullanın.
İYİ:
public enum CompressionFormat
Zip,
Gzip,
Rar
end enum
Public Sub Compress(ByVal CompressionFormat As format)
Select Case format
Case CompressionFormat.Zip
CompressWithZip()
Exit Select
Case CompressionFormat.Gzip
CompressWithGzip()
Exit Select
Case CompressionFormat.Rar
CompressWithRar()
Exit Select
Case Else
CompressWithZip()
Exit Select
End Select
End Sub
KÖTÜ:
public enum CompressionFormat
Zip,
Gzip,
Rar
end enum
Public Sub Compress(ByVal CompressionFormat As format)
If Format = CompressionFormat.Zip Then
CompressWithZip()
ElseIf Format = CompressionFormat.Gzip Then
CompressWithGzip()
ElseIf Format = CompressionFormat.Rar Then
CompressWithRar()
Else
CompressWithZip()
End If
End Sub
29
Visual Basic.NET Kodlama Standartları
Mutlaka "Case Else" ile beklenmeyen verileri kontrol edin.
İYİ:
Public Enum CompressionFormat
..
End Enum
Public Sub Compress(ByVal CompressionFormat As format)
Select Case format
Case CompressionFormat.Zip
CompressWithZip()
Exit Select
Case Else
CompressWithZip()
Exit Select
End Select
End Sub
KÖTÜ:
Public Sub Compress(ByVal CompressionFormat As format)
Select Case format
Case CompressionFormat.Zip
CompressWithZip()
Exit Select
Case CompressionFormat.Gzip
CompressWithGzip()
Exit Select
Case CompressionFormat.Rar
CompressWithRar()
Exit Select
End Select
End Sub
5.5 “For / Foreach” Deyimleri
Bu iki döngü tipinde, döngü değişkenini aksi gerekmedikçe döngü içinde tanımlayın.
İYİ:
Dim test() As String = {"bir", "iki", "üç"}
For i As Integer = 0 To test.Length - 1
MessageBox.Show(test(i))
Next
KÖTÜ:
Dim i As Integer
Dim test() As String = {"bir", "iki", "üç"}
For i = 0 To test.Length - 1
MessageBox.Show(test(i))
Next
İYİ:
Dim test As String = "bir,iki,uc"
For Each item As String In test.Split(",")
MessageBox.Show(item)
Next
30
10.02.2011 v1.0
KÖTÜ:
Dim test As String = "bir,iki,uc"
Dim item As String
For Each item In test.Split(",")
MessageBox.Show(item)
Next
5.6 “While/do-while” Deyimleri
While döngüsü ve do-while döngüsünün formu aşağıda ki gibidir;
İYİ:
While koşul
' ...
End While
Do
' ...
Loop While koşul
KÖTÜ:
While True
If Not koşul Then
Exit While
' ...
End If
End While
Do
' ...
If Not koşul Then
Exit Do
End If
Loop While True
31
Visual Basic.NET Kodlama Standartları
5.7 İstisnai Durum Yönetimi
Throw-catch-finally bloğunun yapısı aşağıdaki gibidir.
Asla boş bir catch bloğu tanımlamayın.
Throw-catch pahalı bir işlemdir. Bunu akış denetimi için kullanmayın.
Değerlendirmeyeceğiniz istisnai durumu yakalamayın.
Catch bloğu içinde try-catch kullanmaktan kaçının.
İstisnai durum yakalanmasını en çok yakalanma olasılığı olandan en azına doğru
sıralayın.
Finally bloğunda try için ayrılan kaynağı salıverin.
İYİ:
Try
' Đstisnai durum oluşma ihtimali olan kod
Catch ex As Exception
' Oluşan durumu rapor et.
Throw
Finally
' try bloğu içinde kullanılan kaynağın salıverilmesi.
End Try
KÖTÜ:
Try
' Đstisnai durum oluşma ihtimali olan kod
Catch
Throw
Finally
' try bloğu içinde kullanılan kaynağın salıverilmesi.
End Try
Oluşan istisnai durumu tekrarlamaktansa iletmeyi tercih edin.
İYİ:
…
Catch ex As Exception
' Oluşan durumu rapor et.
Throw
KÖTÜ:
…
Catch ex As Exception
' Oluşan durumu rapor et.
Throw ex
32
10.02.2011 v1.0
İstisnai durumlardan kaçınmak için önce kontrol etmeyi tercih edin.
İYİ:
If connection.State <> ConnectionState.Closed Then
connection.Close();
End If
KÖTÜ:
Try
connection.Close();
Catch ex As Exception
' Oluşan durumu rapor et.
End Try
Catch bloğu içinden farklı bir exception fırlattığınızda mutlaka innerException özelliğine
oluşan istisnai durumu ekleyin. Bu şekilde Call Stack zincirini bozmamış olursunuz.
İYİ:
Try
' Đstisnai durum oluşma ihtimali olan kod
Catch ex As Exception
' Oluşan durumu rapor et.
Throw New Exception( "istisnai durum açıklaması", ex )
End Try
KÖTÜ:
Try
' Đstisnai durum oluşma ihtimali olan kod
Catch ex As Exception
' Oluşan durumu rapor et.
Throw New Exception( "istisnai durum açıklaması" )
End Try
33
Visual Basic.NET Kodlama Standartları
Đndeks
A
M
Ara birim--------------------------------------------------- 3, 20
Metot -------------------------------------------------- 1, 14, 23
B
O
Blok açıklama ------------------------------------------------ 11
Boşluklar --------------------------------------------------- 1, 10
Olay -------------------------------------------------2, 3, 14, 23
D
Ö
Dokümantasyon ----------------------------------------- 1, 13
Özellik-----------------------------------------------2, 3, 14, 23
F
P
For ----------------------------------------------------- 2, 15, 30
Foreach ---------------------------------------------------- 2, 30
Parametre -------------------------------------------- 1, 14, 22
R
G
Return --------------------- 2, 9, 11, 12, 16, 18, 19, 23, 26
Girintileme ------------------------------------------------ 1, 10
S
İ
K
Sabit ----------------------------------------------------- 1, 3, 22
Salt okunur ---------------------------------------------------- 3
Sınıf -------------------------------------1, 3, 8, 14, 17, 20, 35
Statik --------------------------------------------------------1, 22
Switch -------------------------------------------------------2, 28
Kısaltmalar ------------------------------------------------ 1, 17
T
İsim alanı --------------------------------------------- 3, 10, 19
İstisnai durum ------------------------------------------ 31, 32
Tek satırlık açıklama ---------------------------------------- 12
34
10.02.2011 v1.0
TiKS (Türkçe içerikli Kodlama Standartları) Proje Ekibi
Kadir ÇAMOĞLU
Kadir ÇAMOĞLU, 1974 İstanbul doğumludur. 1995 yılından itibaren profesyonel
olarak yazılım projelerinde görev alan ÇAMOĞLU, 1993 yılından sonra eğitim
sektöründe de yer almıştır. Microsoft’un yazılım üzerine birçok sertifikasına sahip
olan ÇAMOĞLU’nun Pusula, Alfa ve Kodlab yayınevlerinden çıkan on adet kitabı
bulunmaktadır. Bilgisayar mühendisliği doktora öğrencisi olan ÇAMOĞLU,
BilgeAdam Kurumsal ‘da yazılım ve veri tabanı danışmanı olarak çalışmaktadır.
Volkan ATASEVER
Yazılım Dünyasına BASIC ve C/C++ dili üstünde uygulamalar geliştirerek adım
atan Volkan daha sonra C# ve VB.NET, Java dilleri ile uygulamalar geliştirmiştir.
Haziran 2010 tarihinde ise Bilgisayar Mühendisliği kıyafetini giymiştir. Ineta
topluluklarında uzun zaman yazarlık ve editörlük yaptıktan sonra
DeveloperMania.Net sitesinin topluluk lideri olmuştur. INETA User Group Lead
olarak çeşitli çalışmalar yapmaktadır. Yazılım Uzmanlığı ve Danışmanlığı
yapmaktadır. Microsoft'un Akademik sitesi MSAkademik.Net de VB.NET
editörlüğü yapmıştır. Konuşmacı olarak çeşitli üniversite ve eğitim merkezinde
seminer vermektedir. Microsoft'un Türkiye’de sadece 18 kişiye verdiği Sharepoint
Server sertifikasını almıştır. Mobil uygulamalar, ASP.NET, MOSS 2007, SQL
Server ve Windows geliştirmeleri içeren projelerde görev almaktadır. Bilgisayar ve
teknoloji dergilerinde yazarlık yapmaktadır. Şu anda PCWorld dergisinde
yazmaktadır. Ulusal Akademik Konferanslarda akademik bildiri ve makale yazarak
bilime katkıda bulunmaktadır. Bilgisayar Mühendisi olarak çalışmalarını
sürdürmektedir.
Merve CEYLAN
2001 yılında lisede programlama eğitimi almaya başlayan Merve Ceylan, 2007
yılında Marmara üniversitesi Teknik eğitim fakültesi - bilgisayar teknolojileri ve
programlama bölümünü bitirmiştir. Halen eğitimine devam etmekte olup işletme
bölümü öğrencisidir.
Üniversiteye devam ederken TÜBİTAK’ta 2 yıl genel muhasebe projesinde
yazılım uzmanı olarak çalışmıştır. Şuan 3 yıldır devam etmekte olduğu Maltepe
Üniversitesi öğrenci işleri otomasyonu projesinde proje sorumlusu olarak görev
almaktadır. Bu yıllar içinde farklı şirketlerin el terminalli restoran otomasyonu ve
pazar araştırması projelerinde de çalışmıştır.
Burhan ÇETİNKAYA
2005 senesinde yazılım dünyasına lisede Veri tabanı Programcılığı Bölümüne
başlayarak giriş yapmıştır. 2007 senesinde Türkiye çapında gerçekleşen bir
yazılım geliştirme yarışmasında Türkiye ikinciliğiyle gümüş madalya kazandı.
Birçok orta çapta Windows - Based Client ve Enterprise uygulamalarda proje
yöneticisi ve yazılım uzmanı olarak görev aldı. Şuan 1. Sınıf öğrencisi olarak
Yeditepe Üniversitesi – Bilgisayar ve Öğretim Teknolojileri Öğretmenliği eğitimime
devam etmektedir.
35
Visual Basic.NET Kodlama Standartları
Bahtiyar DİLEK
1984 Amasya doğumlu olan Bahtiyar DİLEK, 16 yaşından beri programlamayla
uğraşmaktadır. 2008 yılında Bilimer Bilişim Akademisinden aldığı eğitimle MCPD
olmuştur. Sharepoint Developer sertifikası olan Bahtiyar, halen Bilgisayar
Mühendisliği öğrencilerine danışmanlık yapmaktadır.
İrfan MEVSİM
1982 Tekirdağ doğumlu olan İrfan Mevsim, Marmara Üniversitesi Bilgisayar ve
Kontrol Öğretmenliği 2005 mezunu. 1998 yılından bu yana gelen amatör
programlamanın üzerine 2007 yılında Türkiye’nin en büyük beyaz eşya
üreticilerinden birinde profesyonel anlamda programlayama başladı. Burada
geçen 3 yılın ardından şu anda işletme içinde ihtiyaç duyulan tüm otomasyon ile
entegre, mobil ve SAP bağlantılı sistemler üzerine uygulama geliştirebilir
durumda.
Can YAPAN
2006 yılında Bulgaristan Varna Teknik Üniversitesinde, Bilgisayar Sistemleri ve
Teknolojileri bölümünde eğitimine başlamıştır. Eğitimi sırasında C# dili ve .Net
teknolojileri ile ilgilenmiş ve birkaç projede yer almıştır. Halen freelancer yazılım
geliştirip eğitimine devam ediyor.
Hakan YAVUZ
2006 senesinde Asp ile Web programcılığına başladım. Ardından Visual Basic 6.0
ile devam edip daha sonrasında tekrar web programlama ile devam etme kararı
alıp php ve client tabanlı dilleri öğrenmeye başladım (javascript,ajax) daha sonra
.net in gelişmesi ve yaygınlaşması ile beraber c#.net ve vb.net ile devam
etmekteyim. Fakat ağırlığım web programlama üstünde.
Yücel YILDIRIM
Yücel YILDIRIM, 1981 Sivas doğumludur.2005 yılı Marmara Üni. Bilgisayar
Mühendisliği mezunu olup, beş yılı aşkındır yazılım dünyasında aktif olarak rol
almaktadır. Şu an bir bankanın bilgi işlem bölümünde çalışmaktadır.
36

Benzer belgeler