Kaliteli Yazılım Geliştirmek İçin Neler Yapılabilir?

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,608
Reaksiyon puanı
144
Puanları
243
Çok sevdiğim ve daha önceden de kendisiyle çalışma fırsatı bulduğum Koray abimin bir makalesi. Yazı ağırlıklı olarak .Net platformu üzerine çalışanlar için ama diğer diller ile çalışanlar için de güzel bilgiler var.


Öncelikle sizlere maddeler halinde özellikle kodlamaya yeni başlayanlar veya yazdığı koda tekrar baktığında anlamayan geliştiriciler için kendi çapımda birkaç öneri vermeye çalışacağım. Sadece benim tecrübelerim doğrultusunda neler yapılabilir aşağıda maddeler halinde listeleyeceğim. Bunlara ilave etmek istediğiniz olursa lütfen sizde paylaşın.

Kaliteyi gözardı ederek geliştireceğimiz yazılımlar ileride başımızı ağrıtabilir. Başlangıçta işin kolayına kaçabiliriz ancak proje büyüdükçe sorunlar da artacaktır ; bakım ve gelişme yapmak çok zor olacaktır. Bu yüzden bu konuya gereken önemi vermek durumundayız diye düşünüyorum.


  • İlk önce değişken ve kontrollere isim verirken anlamlı isimler vererek başlayabiliriz.Örneğin sayıların toplamını tutmak için bir integer sayıyı int x yerine , int _toplam şeklinde yazmalıyız veya bir forma Form1 yerine frmAnasayfa.


  • Windows veya web uygulaması yaptığımızı düşünelim bir butona tıklayınca bir işlem yaptıracağız diyelim ; işlem yapacak kodları butonun click eventi yerine bir fonksiyonda tanımlayıp butonun click eventinde bu fonksiyonu çağırabiliriz.


  • İşlem yapacak fonksiyonları gruplayarak class’ların içerisinde tanımlayabiliriz.Örneğin maliyet hesaplama işlemlerini yapacak fonksiyonları ve değişkenleri Maliyet isminde bir class içerisine yazıp bu classı programın diğer yerlerinde kullanabiliriz.

  • Klasörler oluşturma : Belli amaca hizmet eden class’ları bir klasör altında toplayarak bir hiyerarşi sağlayabiliriz.

  • Her class değişkenini public tanımlama yerine private tanımlayıp eğer dışarıdan erişim sağlanacaksa public bir property tanımlayabiliriz.

  • Bütün fonksiyonları public tanımlamak yerine bu fonksiyonu sadece sınıf içinde mi kullanacağız yoksa alt sınıflar mı kullanacak belirleyerek private veya protected tanımlayabiliriz,Böylece fonksiyonların etki alanlarını kısıtlamış oluruz.

  • Çok abartı olmamak kaydıyla gerekli gördüğünüz yerlere summary’ler ve açıklamalar ekleyiniz.

  • Bir class’ın tek bir görevi ihtiva etmesini sağlayın.Örneğin Stok sınıfı deyip içinde başka işlemleri de bu sınıfa yüklemeyin.

  • Geliştirme yaparken belirli aralıklarla ( refactoring ) kodda ve tasarımda iyileştirme yapın

  • Programı genellikle 3 katmanlı olarak oluşturmaya çalışın. Data Layer – Business Layer ve Presentation Layer.

  • Bir kodu yazarken bir başka projede kullanılabilir olduğunu test edin.Örneğin bir class başka class’lara bağımlı olmadan başka bir yerde kullanılabilir mi(re- use).Genellikle DLL haline getirmeye çalışın.

  • Formda veya Sayfada asla sql cümleleri kullanmayın.Veritabanı işlemlerini data katmanında yapın.

  • Abstract class ve interface kullanın. Bunların sayesinde sınıfların birbirlerine olan bağımlılıklarını azaltabilir programa esneklik kazandırabilirsiniz.

  • Design Patternlerden faydalanın. Amerika’yı yeniden keşfetmeye gerek yok.Hem kodunuz sadeleşir hem de daha etkili ve anlaşılır bir koda sahip olursunuz.

  • İlerde şöyle bir fonksiyon kullanabilirim deyip boşu boşuna fazladan bir fonksiyon implement etmeyin .Gereksiz hiçbir kod eklemeyin.

  • Fonsiyon ve sınıf isimlerini anlaşılır isimler verin bırakın uzun olsun : GetUserIdByUsernameAndPassword();

  • Bazı metodlar başka metodları tetiklemesi gerekiyorsa delegate’lerden faydalanın.

  • Veritabanı uygulaması yapıyorsanız , çoğu işlemi veritabanına yıkmaya çalışın ; stored procedure , function , view , ..kullanın değiştimesi de böylece kolay olur.

  • For yerine foreach , if else yerine switch , Arraylist yerine Generic List , tercih edin.

  • Enumaration kullanın.

  • Önce çalışan kodu yazın daha sonra hem anlaşılır hem de performanslı çalışan kodu yazın.

  • Parçala- Böl –Yut : Bir problemi en küçük parçalarına kadar ayırın ve alt parçaları yaparak işleme başlayın , kağıt kalem kullanın. Metodların 30 satırı geçmemesine dikkat edin.

  • Tekrarlayan kodları fark ettiğiniz an bu tekrarı yok etmeye çalışın

  • Class diyagramından faydalanın. Diyagramda her şeyi daha net görebilirsiniz.

  • Using kullanımını artırın çünkü yaratılan nesneleri otomatik dispose eder veya kullanmasanda yaratılan nesneleri dispose et.Böylece bellek taşmalarını engelleyebiliriz.

  • Namespace isimlerini kodun içinde yazmak yerine en üste using Namespace diyip kullanın

  • String birleştirme işlemini StringBuilder ile yapın

  • 80 kolondan uzun kodları alt satıra geçirin.

  • Kodlarınızı Regionlar ile bölün.


Unutmayın Compiler’ın anlayabileceği kodu herkes yazar ancak insanların anlayabileceği kodu ancak gerçek yazılımcılar yazabilir.


Kaynak
 

keyloger

Rektör
Katılım
4 Ocak 2008
Mesajlar
13,268
Reaksiyon puanı
235
Puanları
243
Faydalı bilgiler var, teşekkür ederiz. :)
 
Üst