Paşa Yazıcı  
Yazılım Mühendisi  
Aktif Mühendislik

Bu yazıda, kodlama yaparken kullanılan bazı standartlardan bahsedeceğim. Sürdürülebilir ve geliştirilebilir bir yazılım mimarisinde kodlama standartlarına uymak bir yazılımcı için vazgeçilmez bir kural olmalıdır. Şirketlerin kendi insiyatifi ile geliştirdiği bazı standartlar olmakla birlikte, dünya çapında kabul edilmiş kod standartları da bulunmaktadır.

I. GİRİŞ

Uygulama geliştiricilerin günümüzdeki öneminin ne kadar fazla olduğu bilinen bir gerçek olmaya başladı. Bu gerçeği göz önüne alan şirketler artık bünyelerinde yazılım ekipleri bulundurmaktadır. Zamanla ekipte değişiklikler olması da karşılaşılan durumlar arasındadır. Burada dikkat edilmesi gereken gelen kişinin işe adaptasyon süresini kısaltmak ve şirketin bu değişimi minimum bir zararla atlatmasını sağlamaktır. Kod standartlarının şirketlere verdiği avantaj bu değişimle ya da ekip büyütüldüğünde ortaya çıkmaktadır. Aynı şekilde bir uygulama geliştiricinin de bu standartları bilmesi ve uygulaması onunda yeni projelere destek vermesi noktasından maksimum bir avantaj oluşturmaktadır.

Kod standartları için konuşan insanların aynı dilde iletişime geçmesini örnek gösterebiliriz. Farklı ana dile sahip inanların aynı dili konuşarak bir projeyi yürütmesi ile farklı dili konuşup aynı projeyi yürütmeye çalıştıklarını karşılaştırdığımızda hangisinin daha verimli olacağını söylemeye gerek yoktur.

Projelere sonuç odaklı yaklaşıp gelişme veya güncelleştirme evresini dikkat etmeden ilerlemek, belki projeyi başarılı bir şekilde bitirebilir, ancak bu projenin gelişiminde veya güncelleştirmesinde yapılacak bir istekte size normalinden çok fazla geriye götürebilir. Belki de aynı işi yapan birden fazla projeyi yeniden tasarlamaya çalışmanıza neden olacaktır.

Birçok standart bulunmaktadır.

  • Naming Standard (İsimlendirme Standardı)
  • Class Standard (Sınıf Standardı)
  • Method Standard (Metot Standardı)
  • Member Standard (Değişken Standardı)
  • Namespace Standard (Kütüphane Standardı)
bunlardan bazılarıdır.

II. STANDARTLAR

A. İsimlendirme Standartları

Birçok isim standardı bulunmaktadır. Pascal Case, Camel Case, Upper Case, Hungarian vb...

1) Pascal Casing

Tanımlayıcıdaki ilk harf ve sonraki her bir birleştirilmiş kelimenin ilk harfi büyük harf kullanılır. Üç veya daha fazla karakterin tanımlayıcıları için Pascal kılıfını kullanabilirsiniz.[1]

BackColor; AppDomain; ErrorLevel; RedValue;

Kod Standartları

2) Camel Case

Bir tanımlayıcının ilk harfi küçük harflerle ve daha sonra birleştirilmiş kelimenin ilk harfi büyük harfle yazılır. [1]

backColor; appDomain; errorLevel; redValue;

Kod Standartları

3) Upper Case

Tanımlayıcıdaki tüm harfler büyük harfle yazılmıştır. Bu kuralı yalnızca iki veya daha az harften oluşan tanımlayıcılar için kullanın. [1]

System.IO; System.Web.UI;

4) Hungarian

Pascal standardına ek olarak tanımlayıcının başına tip ön takısı gelmektedir. [1]

bool bStatus; int iYear; string strName;

B. Sınıf Standartları

Bir sınıfın veya arayüzün tek bir amacı olmalıdır. Başka bir sınıfa özel değil birden fazla uygulamayı destekleyecek seviyede olmalıdır. Birbirlerine bağlanması gereken sınıflarda arayüzler kullanılmalıdır. Sadece statik olarak eleman içeren sınıflar static olarak tanımlanmalıdır.

Kod Standartları

Sınıf içeriğine özel olarak yazılmış olan değişkenlerinizi sınıf dışından gözükecek şekilde tanımlamayınız. Sınıflar arası karşılıklı bağımlılığa izin vermeyin. Bunun yerine arayüzler kullanarak birbirlerine bağlayınız. Dış kaynaklara erişim yapılacaksa (IO,WebService, Sql) IDisposable arayüzü implemente edilmelidir. [3]

C. Metot Standartları

Metotlar 7 parametreyi aşmamalıdır. Çok fazla parametre alan metot karmaşık ve sürdürülebilirliği azdır. Metodu kendini açıklayan birden çok ve küçük parçalara ayırın. Çok fazla parametre alan metotlarda alınan parametreleri bir obje olarak içeriye alın.

Kod Standartları

Olumsuz tanımlamalardan kaçının. Mesela HasNoRowValue yerine HasRowValue kullanın.

Kod Standartları

Switch-Case yapısında case‘ler arasında çok fazla kod bulundurulmamalıdır. Bunlar ayrı bir metot ile yazılmalıdır.

Kod Standartları

Kodlama yapılırken hardcode ifadeler kullanılmaktan kaçınılmalıdır. Kullanılan sabitler ayrı olarak tanımlanmalıdır.

Kod Standartları

REFERANSLAR

[1] https://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx
[2] http://www.dofactory.com/reference/csharp-coding-standards
[3] http://csharpguidelines.codeplex.com/releases/view/46280

Paylaş: