Çalışan Kod mu, İyi Kod mu ?

Bu yazımda sizlere iyi bir kodlama yapmak için nelerin yapılabileceği ve tercih edilmesi gerekenleri kısaca anlatmaya çalışacağım.

Herkese merhaba,

Bu yazımda sizlere iyi bir kodlama yapmak için nelerin yapılabileceği ve tercih edilmesi gerekenleri kısaca anlatmaya çalışacağım.

Çalışan kod nedir?

Bir çok tanımı bulunabilir ama benim anladığım kadarıyla compiler tarafından anlaşılan kod demektir. Çalışan kod dediğimizde zaten dikkat ettiyseniz herhangi bir ideal ya da standarta uyumdan söz etmiyoruz, sadece kodun çalışıp çalışmamasıyla ilgileniyoruz. Tabi ki yapılan bütün projelerde kodlar çalışır, ama kodun çalışmasından çok sürdürülebilir, güvenilir, bakımı kolay ve verimli olması daha önemli bir etkendir. Bu da iyi kodun tanımı oluşturur. İyi kod yazmak belirli deneyim ve uğraşlar sonucunda elde edebileceğimiz bir kabiliyettir aslında. Herkes yazılım eğitimi alarak kod yazabilir ve çalışan bir çok proje yapabilir, fakat iyi kod yazmak belirli bir çabanın ve araştırmanın sonucudur.

İyi kod yazmak hatasız kod yazmak anlamına gelmiyor, ama oluşan hataların yönetilmesi ve gerekli logların ve feedback'lerin verilmesi, mimari bütünlük ve sınıfların tasarımındaki doğruluk anlamına gelebilir.

İyi bir kodlamada bulunması gerekenleri sıralarsak;
Güvenilirlik, Bakımı kolay, Performanslı ve verimli, Genişlemeye açık, Kolay anlaşılan olmasıdır.

Şimdi C# programcıları için tercih edilmesi gereken kodlama davranışları hakkında madde madde fikirlerimi yazacağım.

[*] Bir proje oluşturmadan önce mimari tasarım hakkında fikirler yürütmelisiniz ve proje de bulunan dosya hiyerarşisini önceden belirlemelisiniz.

[*] Katmanlı yapı kullanmak her zaman iyi bir seçimdir.projenizi modüllere ayırarak daha yönetilebilir uygulamalar ve kodlar oluşturabilirsiniz.

[*] Projenizde kullanılmayan kodların (method, class) hepsini silin. Tekrar eden kod blokları varsa ters giden bir şeyler var demektir; kod tasarımlarınızı gözden geçirin.

[*] Bir isimlendirme standartınız olsun ya da şirket içi standartlara uyarak kod yazın. Hem size hız kazandırır, hem de anlaşılabilen kodlar yazmış olursunuz. Grup çalışmalarında ortak bir terminoloji oluşmasını sağlar.

[*] Kod içerisinde fiziksel dosya yolu yerine application.path denilen uygulamanın göreceli yolunu kullanın. Örneğin bir xml dosyasına ait provider sınıfı yazıyorsunuz. Fiziksel dosya yolu belirlersek bu sınıf çalışmayacaktır.

[*] Uygulamanızda oluşan hatalar için önlemler alın. Bir çok seviyede hatalar oluşur. Method seviyesinde(method level), sayfa seviyesinde (page level), uygulama seviyesinde(application level). Her seviye için ayrı ayrı önlem almaktansa hataları uygulama seviyesine fırlatarak (throw) yönetimini kolaylaştırabilirisiniz. İsterseniz kendinize ait custom exception sınıfları oluşturabilirisiniz ya da 3 parti bileşenlerden (Log4net) bileşenlerden yardım alabilirsiniz.

[*] Aynı işlevselliğe ait kodlarınızı gruplamak için region anahtar kelimeisni kullanın.

[*] Muhakkak her sınıfın üst kısmına xml tabalı bir açıklama yazın. Mantık olarak anlaşılaması zor business operasyonları için kod içerisine yorumlar yazın.

[*] Bir method 4 ün üzerinde parametre alıyorsa struct veya class oluşturarak kendi veri yapınızı oluşturun.

[*] Oluşturduğunuz nesnelerinizi işiniz bitince bellek üzerinden atmalısınız, yani dispose işlemini gerçekleştirmelisiniz. Eğer nesneniz bellek üzerinden atmazsanız bellekte yer kaplayacağından dolayı performans kaybına yol açacaktır. Bunun için using blogunu kullanabilirsiniz. Using bloguna yazılan nesneler bloktan çıkarken dispose olurlar. try-catch-finally ile kullandığımız nesneleri finally blogunda yok etmeliyiz.

[*] String değerleri karşılaştırmadan önce uppercase ya da lowercase yaparak daha sağlıklı karar işlemleri yaparsınız. Bir string değişkenin boş olup olmadığının kontrolü için "" yerine String.Empty kullanılmalıdır. String ifadeleri birleştirmek için + operatörünü kullanmayın. Bu operatör concat genişleme methoduyla (extention method) aynı işi yapar ve eklerken yeni bir string oluşturur. Onun yerine StringBuilder nesnesini kullanın bu nesneyi tercih etmeniz daha performanslıdır.

[*] Biraz zaman alabilir ama SOLID prensiplerini ve tasarım desenlerini (Design Pattern) öğrenmeye çalışın; bunlar hakkında birer kitap bulundurmanız iyi olacaktır. (Ben daha alamadım )

Bir zamanlar Stephen Walter'ın dediği gibi:
"Good software is software that works as you intended and that is easy to change."

Tercümesi: "İyi yazılım istenildiği gibi çalışan ve kolay değişebilen yazılımdır. İyi yazılım iyi kodlardan oluşur."

İyi kod yazmaya çalışın. Buton altı kodlamada (diğer bir deyişle spagetti kodlama) ısrar etmeyin.

Bu yazımın sonuna geldim, size iyi kodlamalar...

  • Etiketler;
Yunus Emre Keskin
Sakarya Üniversitesi BÖTE bölümü son sınıf öğrencisi. Üniversitenin ilk yılında Microsoft teknolojileriyle tanıştı ve 3 yıldır bu konularda çalışmalar ve projeler üretiyor. <p>Burada yayınladığı yazılar yapmış olduğu projelerde edindiği bilgilere dayanmaktadır.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Bu konuda daha öncede buna benzer bir yazı dikkati çekmişti. Orda da bahsedildiği gibi iyi kod; #Güvenilir olamalıdır. #Sürdürülebilir olmalıdır. Yani bakımı kolay olmalıdır. #Verimli olmalıdır. Ayrıca kod yazarken; #tekrar eden kodları bir methodda toplayıp kullanmak, # açıklayıcı field yada properties(değişken tanımlamak) # algoritmik kod yazmak. #Durmadan sql işlemi yapılıyorsa bir datalayer yazarak methodlar içerisine taşınarak bu methodları çağırmak daha mantıklı. # AdiSoyadi yerine: txt_Ad, txt_Soyad demek. Bu kod yazarken çok işine yarar. Özellikle intellisense tamamlama yaparken karşına txt ile başlayan değişkenleri gösterir. # Algoritman yoksa zaten kod yazmanın avantajı yoktur. ayrıca syntax hatalarıda gözden kaçırılmamlıdır. İyi bir kod parametrik durumları düşnerek yazmaktır da diybiliriz.. Arkadaşım yüreğine sağlık çalışan ve iyi bir kod programlama açısından çok önemli bir konuydu bunu dile getirdiğin için teşekkürler.biraz seni desteklemek adına konuştum aslında :)

Yukarı Git