- Kategori
- Yazılım
Değişlik programcılık teknikleri, püf noktaları
Sınıfları Temizlemek, Belleği Pirüpak Yapmak
Bu püf noktasını bir süre önce bir kitapta gördüm. Bu süper püf noktasının anlatıldığı kitabı alma imkanını bulamamış olanlar bu teknikten mahrum kalmasın diye tekniği özetleyip sizinle paylaşacağım. Püf noktamızın konusu sınıfları temizlemek ama yani sınıfları bellekten temizlemek.
Şimdi bazılarınız diyecekler ki, bizim bildiğimiz nesneler bellekten temizlenirdi şimdi bellekten bir de sınıfları mı temizleyeceğiz? Sınıflarınız kirli ise bunları bellekten mutlaka temizlemeniz gerek. Yoksa bellek berbat olur. Bu işlem için yani sınıf temizleme işlemini GC sınıfının SuppressFinalize() metodu ile aşağıdaki gibi yapabilirsiniz.
System.GC.SuppressFinalize(this); // Bu Sınıfı Ter Temiz Yap
Sınıfınızda bu satırı içeren bir metot hazırlayıp kullanabilirsiniz. Sınıfınızda böyle bir metot hazırlayıp kullanmış olmanıza rağmen sınıf bir türlü bellekten temizlenmiyorsa bilgisayarınızı kapatıp tekrar açıp temizleyip bu metodu ikinci kez kullanmanız önerilir(!).
class kirli_sinif
{
public void sinifi_cilala()
{
System.GC.SuppressFinalize(this); // Bu Sınıfı bellekten uçur
}
}
Programın ileri aşamalarında bu sınıfın örneğinı alıp bu metodu işletirseniz bellek temizleme dertlerinizden kurtulursunuz.
Button Nesnelerinin Text Özelliği
Varsayalım ki C# veya başka bir programlama diliyle bir uygulama geliştirdiniz. Doğal olarak formlarda Button nesnelerine yer verdiniz. Button nesnelerinin etiketlerini yani başlık metinlerini yani Text özelliğine dikkat etmelisiniz. Çünkü Button nesnelerine uygun veya motive edici başlık metni seçmezseniz Button nesnelerinin Click olayıyla ilişkilendirdiğiniz metotlar verimli bir şekilde çalışmıyorlar. Örneğin Button nesnesine “Aktar” bir başlık metni yerine “Gözünü Seveyim Güzel Aktar” gibi bir başlık metni seçmeniz halinde programınız hatasız ve daha hızlı çalışıyor. Madem Button nesnelerinin başlık metinleri bu kadar önemlidir dikkatli olup başka programcılara ait başlık metinlerini kullanmamak gerekmektedir. Rivayetlere göre bu püf noktasını bir öğretim üyesi bulmuş ve ODTÜ mezunu bir bilgisayar mühendisi geliştirmiştir.
Procedure Kullan Gerisini Merak Etme Sen
Programcılar yazdıkları programı överken bazen kullandıkları veritabanın sağlam olduğunu söylerler. Örneğin Access veritabanı SQL Server kadar sağlam ve güvenli değildir. Benim programlarını pazarlamaya çalışanlara bir önerim var: C# ile geliştirdiğiniz projelerde mümkün mertebe fonksiyon yerine Procedure kullanın. Madem Procedureler daha gelişmiş bir yapıya sahiptir Procedure kullanarak programınızın gücüne güç katabilirsiniz. Ama hocam C#’ta Procedure’ler yok gibi itirazları kabul etmem. Programlarınızı kalitesini artırmak istiyorsanız Procedure kullanmalısın.
Dizi Değişken Tanımlama Tekniğinizi Değiştirin
Programcılıkta güncelin uzağında kalmış bazı programcılar C# gibi görece yeni bir programlama dili kullansalar bile bütün uyarılara rağmen bildiklerini okuyorlar ve dizi değişkenleri aşağıdaki gibi tanımlıyorlar:
private void senin_degil_benim_buton_Click(object sender, EventArgs e)
{
int[] dizini_dovmeyen_dizi = new int[4];
}
Ne yapıyor programcımız burada? Eski ve modası geçmiş usulde 4 elemanlı integer tipinde bir dizi değişken tanımlıyor. Hal bu ki bu dizi değişkeni aşağıdaki gibi tanımlasa programının değeri en az 2 kat artacak ve başı göklere, zirvelere erecek. Benden uyarması; akıllı programcılar dizi değişkenkeri aşağıdaki gibi tanımlıyorlar. Bu arada kodunuza using System.Collections; yazmayı unutmayın.
ArrayList dizini_doven_dizici = new ArrayList()