C#nedir?com
 
YAZAR HAKKINDA
Koray Kırdinli
Koray Kırdinli
http://koraykirdinli.wordpress.com
İletişme geçmek için tıklayın.
10 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: dizayn geliştirme iyi kaliteli kodlama patterns sql tasarım yazılım yazılımcı İpucu Koray Kırdinli
 
YAZI HAKKINDA
Türü : Serbest Köşe (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : İpucu
Yayınlanma Tarihi : 18.11.2009
Okunma Sayısı : 18943
Yorum Sayısı : 5     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Burak Selim Şenyurt
Sekiz Saatlik Sonsuz Döngü 19.1.2020
Burak Selim Şenyurt
Switch Case Kullanmadan Kod Yazılabilir mi? 19.1.2020
Turhal Temizer 'in Blogu
Conda install environment.yml Package 19.1.2020
Turhal Temizer 'in Blogu
Mac OS/X Removing CUDA 19.1.2020
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Kaliteli Yazılım Geliştirmek İçin Neler Yapılabilir?
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon

Ö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.

 

1-    İ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.

2-    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.

3-    İş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.

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

5-    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.

6-    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.

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

8-    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.

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

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

11-  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.

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

13-  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.

14-  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.

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

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

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

18-  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.

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

20-  Enumaration kullanın.

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

22-  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.

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

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

25-  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.

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

27-  String birleştirme işlemini StringBuilder ile yapın

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

29-  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.

Makale:
Kaliteli Yazılım Geliştirmek İçin Neler Yapılabilir? İpucu Koray Kırdinli
  • Yazılan Yorumlar
  • Yorum Yaz
EKİ
26
2011
Daha önce c++ da amatörce toplama cıkarma yaş hepsalama butona görev verme tarzında bu gibi şeyler yaptım ama hep web tabanlı calıştım programlama ayrı olduğu için bilgi almak istiyorum
EKİ
26
2011
Merhabalar ben henüz c# diline yeni başladım sizden isteğim kademe kademe öğrenmem gerekenleri söyleyebilirmisiniz üniversite 1.sınıftayım henüz hedefim oyun programcısı olmak daha doğrusu oyun yazılımcısı diyeyim araştırma yaptım C# dilini daha makul görüyorlar.Programlama dilleri olarak php javascrıpt html web tarzı şeyler öğretiyorlar okulda ben kendimi geliştirmek istiyorum bu konudada bayağı bir isteğim var ama nerden başlayacağımı bilmiyorum
OCA
14
2010
for yerine foreach kullanmayın derim.iteratif olarak gezinmek zorunda değilseniz ve eleman sayısı az değilse. 28. öneri ise zaten option içinde editor wrap seçeneğini yapınca otomatik olarak yapar.Son olarak da işlemi veritabanına yıkma işlemine kesinlikle katılıyorum.Özellikle çok kullanıcılı sistemlerde ve yüklü sistemlerde.Bilgilerinizi paylaştığınız için tşkr ederim
ARA
8
2009
Yorumun için teşekkürler dediğin gibi herşeyi veritabanına yıkmak veritabanına olan bağımlılığı artırır ancak performanstan kazanç sağlar bu geliştirmiş olduğunuz uygulamanın ihtiyaçlarına göre değişkenlik gösterebilir. For hızlıdır ancak sürekli bir i değişkeni ile muhatap olmanızı gerektirir ayrıca IComparable arayüzünden tanımlamış olduğunuz sınıfların nesne listeleri üzerinde itaretif olarak gezinmenize izin verir. Her iki yöntemin de atrıları eksileri mevcut.
ARA
8
2009
Anlaşılabilir bir kod yazmak için çok güzel maddeler sıralanmış teşekkürler. Fakat 18. ve 19. maddelere tam olarak katılmıyorum. 18. maddede belirtilen, işlemlerin veritabanına yığılması veritabanından bağımsızlığı kaybettirir. Örneğin store procedures kullanmak, sql serverdan oracle'a geçeceğimiz zaman bize sıkıntı verir. Yada yazılımın hem oracle'da hem sql'de çalışabilme özelliğini ortadan kaldırır. 19. maddede for yerine foreach kullanma önerisi kodun okunabilirliği açısından mantıklı olabilir ama performans kaybına sebep olur. for foreach'ten daha performanslıdır. Özellikle büyük boyutlu dizileri döngüye sokacağımız zaman for kullanmalıyız. Bence yazılım geliştiren herkesin dikkat etmesi gereken maddeler. Teşekkürler
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor