Evvel zaman icinde kalbur zaman icinde develer tellal iken pireler berber iken ben ninemin besiginde tingir mingir sallanirken keloglan bilgisayarin basinda kafayi cizmek uzereymis. Hemde bu cizme olayi o kadar ilerlemiski keloglanin kafasinda sac kalmamis, karakacan acliktan zayiflamis, aykiz bekleye bekleye otobus duragi olmus. Tum bu olanlarin nedeni ise keloglanin yazilim gelistirirken uygulamis oldugu birim testlerinin cok cok zaman almasiymis.
Keloglan ‘in bazi nesneleri kafdaginin arkasina internet uzerinden baglanip anka kusunun haftanin hangi gunleri bos oldugunu soruyor bazi nesneleri sihirli guvercinin nerede oldugunu ogreniyor bazi nesneleri de uzaktaki web servislerine baglanip kendi hesabindan anasinin hesabina havale yapiyormus.
Bu islemlerde kendi ic ortamindan bagimsi,z dis ortamlarla alakali oldugu icin dogal olarak birim testlerinin calismasi uzun suruyormus.
Madem durum bu gelin hep birlikte el atalim ve keloglani, karakacani ve aykizi bu iskenceden kurtaralim 
Teste dayali yazilim gelistirirken onumuze cikan problemlerden bir tanesi de disa bagimli olan nesnelerdir. Bu nesneler dis dunyayla iletisim kurarak gerekli parametreleri dis dunyadaki servise aktarirlar ve gelen cevaba gore islem yapmaya devam ederler. Ornek vermek gerekirse bir kisinin tc kimlik numarasini bulmak icin tckimlik.nvi.gov.tr adresindeki web servislerini bu olaya ornek olarak gosterebiliriz. Bu durumun bize getirdigi dezavantaj yavasliktir. Eğer birim testlerimizin icerisinde bu servisi kullanan bir nesnemiz varsa hem bizimle alakasi olmayan bir servisin test edilmesi soz konusu hem de birim testlerimizin calisma suresini cok cok uzatmasi soz konusu. Bu dezavantajlari ortadan kaldirarak birim testlerinin calisma suresini oldukca kisaltabiliriz.
sorunu cozmek icin asmamiz gereken iki problem var.
1- dis ortamlara olan cagrilari test kodlarimizin arasindan kaldirmaliyiz
2- dis ortamlara olan cagrilari kaldirirken oyle bir ayar cekmemiz lazim ki diger kodlar (testler) sanki dis ortama baglanip veri almaya devam ediyorlarmis gibi hareket etmeliler.
(more…)
No Comments »
1979 yilindan beri beraber yasadigi pascal ile oyle bir butunlesmis ki Felix John COLIBRI, aralarindaki iliskiyi anlayabilmek mumkun degil. cok degisik bir kod yazma teknigi var. Yaptigi bazi ornekleri anlayabilmek icin ilk once kaynak kodu kendi anlayabilecegim bi sekle semale sokmam gerekiyor. Ancak o zaman “neler yapmis bu adam” kismina gelebiliyorum.
yakin bir zamanda acitigi blogunu insanlar daha rahat takip etsinler gibi bir dusunceye meyletmis olacak ki bir rss reader yazmis ve bunu ballandira ballandira anlatmis sayfasinda. guzel mi yapmis. gayet guzel yapmis lakin su kod yazim sitilini biraz daha degistirse cok daha ii olacak. C# veya javayi delphiye cevirmek emin olun cok daha kolay olur..
2 Comments »
her ne kadar bilgisayardan uzak kalmis olsak, baska bir hayata adim atmis olsakta hicbirsey beni delphi hakkinda yazmaktan alikoyamaz
interposer siniflar icin bir cesit taklit siniflarda diyebiliriz aslinda. Tek yaptiklari sey varolan siniflara yeni ozellikler eklemek. “e biz bunu zaten yapiyoruz” diyebilirsiniz ama bu siniflari digerlerinden ayiran fark ozelliklerini genislettikleri siniflar ile ayni adlara sahip olmalari. Bu sayede siz delphi idesinde yer alan normal bilesenleri kullanarak tasarima devam edebiliyorsunuz fakat arka planda kullanilan sinif sizin ozellikler eklediginiz sinif oluyor.
(more…)
6 Comments »
Şimdi size anlatacağım biraz tehlikeli bir duruma sebep olabilir..En azından programların yada tasarladığınız component’lerin sağlıklı çalışması açısından sıkıntılar doğurabilir. Bu açıdan şimdiden dikkatli olmakta fayda olduğu konusunda uyarmak isterim. Diyelim ki bir component tasarladık, component’imizi kullanacak arkadaşlarımız için bazı metodları ve property’leri public yaptık.Ancak değiştirilmesini istemediğimiz çok can alıcı bir özelliği de public kısmında sadece okunabilir yaptık. Ya bu değiştirilebilirse o zaman ne yaparız ? Lafla olmuyor, hemen koda geçelim:
(more…)
No Comments »
Delphi’de hazır olarak gelmekte olan TDownloadURL adlı bir Action var. Bu Action internetten dosya indirme islemini cok kolaylastiriyor. Download islemi sirasinda meydana gelen her turlu olayi isleyebilmemiz icin bize OnDownloadProgess adli bir olay sunuyor. Biz simdi bu olayi kullanarak internetten dosya indirirken o ana kadar inen byte miktarini hem title da hem de bir progressbar uzerinde gosterecez.
(more…)
5 Comments »