- Katılım
- 9 Haziran 2016
- Mesajlar
- 1.545
- Makaleler
- 2
- Çözümler
- 42
Daha fazla
- Cinsiyet
- Erkek
Merhabalar, forumun son zamanlarda yazılım konusunda bir atılım yaptığını görüyoruz. Artık eskisine göre çok daha fazla yazılım konusu açılıyor. Bu demektir ki insanlar yazılıma yöneliyor, bu gayet hoş bir şey. İnsanlar bu alana yönelirken onlardan birkaç ricada bulunmak ve aynı zamanda tavsiye vermek istiyorum.
int TOPLAM = SAYI1 + SAYI2;
return TOPLAM;
}[/CODE]
Yukarıda örneğini verdiğim koda bakalım. Sizin de gözünüze aralarda büyükçe ve Türkçe yazılmış değişken, metot isimleri kötü gelmiyor mu?
Gelmiyor diyorsanız bir de şuna bakın.
[CODE lang="csharp" title="Kod"]private int Add(int integer1, int integer2){
int result = integer1 + integer2;
return result;
}[/CODE]
Kabul edelim... Daha hoş duruyor. Ayrıca ileride github'ınız sizin referansınız olacak. Github'ınızda eğer bu şekilde tanımlanmış değişken isimleri varsa kurumsal yerlerıin sizi tercih edeceğini pek sanmıyorum.
[CODE lang="csharp" title="Kod"]private static GetResult(){
return Convert.ToInt32(Result); //Program burada RESULT ile ilgili bir hata versin örneğin.
}[/CODE]
Biz yukarıdaki hatayı çözemeyiz. Sadece size hatanın açıklamasından yola çıkarak olabilecek ihitmalleri söyleyebiliriz. Kaldı kı biz RESULT değişkeninin float mı double mı yoksa string mi olduğunu bile bilmiyoruz.
Şu an ise değişkeni bildiğimiz için hatanın rahatlıkla Result üzerinde olduğunu söyleyebiliriz. Result numerik olmadığı için sistem dönüşüm yapamayacaktır.
1-) Sürekli Büyük Harf ve Türkçe Kullanmayın
[CODE lang="csharp" title="Kod"]private int TOPLAMBUL(int SAYI1, int SAYI2){int TOPLAM = SAYI1 + SAYI2;
return TOPLAM;
}[/CODE]
Yukarıda örneğini verdiğim koda bakalım. Sizin de gözünüze aralarda büyükçe ve Türkçe yazılmış değişken, metot isimleri kötü gelmiyor mu?
Gelmiyor diyorsanız bir de şuna bakın.
[CODE lang="csharp" title="Kod"]private int Add(int integer1, int integer2){
int result = integer1 + integer2;
return result;
}[/CODE]
Kabul edelim... Daha hoş duruyor. Ayrıca ileride github'ınız sizin referansınız olacak. Github'ınızda eğer bu şekilde tanımlanmış değişken isimleri varsa kurumsal yerlerıin sizi tercih edeceğini pek sanmıyorum.
2-) Yardım İsterken Bütün Değişkenleri Gösterin
Bazen birine yardım etmeye çalışıyoruz ve kişi kodunu açık bir şekilde bizimle paylaşmak istemiyor. Bu gayet doğal çünkü üzerinde bir emek var ancak siz bizden yardım isterken biz bilmediğimiz bir değişkenin verdiği hatayla ilgili yorum yapamayız.[CODE lang="csharp" title="Kod"]private static GetResult(){
return Convert.ToInt32(Result); //Program burada RESULT ile ilgili bir hata versin örneğin.
}[/CODE]
Biz yukarıdaki hatayı çözemeyiz. Sadece size hatanın açıklamasından yola çıkarak olabilecek ihitmalleri söyleyebiliriz. Kaldı kı biz RESULT değişkeninin float mı double mı yoksa string mi olduğunu bile bilmiyoruz.
C#:
private string Result = "NonNumeric";
private static GetResult(){
return Convert.ToInt32(Result);
}
Şu an ise değişkeni bildiğimiz için hatanın rahatlıkla Result üzerinde olduğunu söyleyebiliriz. Result numerik olmadığı için sistem dönüşüm yapamayacaktır.
3-) ConnectionString, SQL Query Vb. Kodda Tutmayın
Bu hem kodunuzun okunabilirliğini azaltacaktır hem de çeşitli güvenlik sorunlarına sebebiyet verecektir. Özellikle .NET ile yapılmış uygulamar decompile edildiği zaman bu hassas verilere erişmek gayet kolay olacaktır.4-) SOLID Prensiplerine Uyun
SOLID; yazılımınızın esnek, yeniden kullanılabilir, sürdürülebilir ve kolay anlaşılabilir olmasını sağlayan prensiplerdir.S — Single-responsibility principle
ÖZET: Bir sınıf (nesne) yalnızca bir amaç uğruna değiştirilebilir, o da o sınıfa yüklenen sorumluluktur, yani bir sınıfın(fonksiyona da indirgenebilir) yapması gereken yalnızca bir işi olması gerekir.
O — Open-closed principle
ÖZET: Bir sınıf ya da fonksiyon halihazırda var olan özellikleri korumalı ve değişikliğe izin vermemelidir. Yani davranışını değiştirmiyor olmalı ve yeni özellikler kazanabiliyor olmalıdır.
L — Liskov substitution principle
ÖZET: Kodlarımızda herhangi bir değişiklik yapmaya gerek duymadan alt sınıfları, türedikleri(üst) sınıfların yerine kullanabilmeliyiz.
I — Interface segregation principle
ÖZET: Sorumlulukların hepsini tek bir arayüze toplamak yerine daha özelleştirilmiş birden fazla arayüz oluşturmalıyız.
D — Dependency Inversion Principle
ÖZET: Sınıflar arası bağımlılıklar olabildiğince az olmalıdır özellikle üst seviye sınıflar alt seviye sınıflara bağımlı olmamalıdır.
Son düzenleme: