Posts Tagged “tdd”

3 arkadas para birlestirip bir radyo almaya gidiyorlar. Radyo 30 lira. Hepsi 10′ar lira koyup radyoyu alip gidiyorlar. Fakat sonra tezgahtar radyonun indirime girdigini ve 25 liraya düstügünü hatirliyor. Çiragina 5 lira verip,gidip para üstünü iade etmesini istiyor. Çirak 5 lirayi 3 kisiye bölüstüremeyecegini düsünüp 2 lirayi cebine atiyor ve 3 lirayi 3 kisi arasinda bölüstürüyor. Böylece elemanlar radyoyu 9′ar liraya almis oluyorlar.
toplamda 10X3 = 30 lira vermislerdi. 1 ‘ er lira geri alinca adam basi 9 ‘ ar lira vermis oldular.
9×3=27 lira
2 lirayi da cirak cebe atmisti. 27+2 = 29 lira
eeee peki ama 30-29 = 1 lira nerede?

Bu sasirtmacali soruyla karsilasmayaniniz yoktur sanirim. Soru bizi oyle zayif bir noktamizdan vuruyor ki saatlerce hesap kitap yapmamiza ragmen 1 liranin nerede oldugunu bir turlu bulamiyoruz. Buyrun bakin, hafizanizi tazeleyin. Google : 1 lira nerede ?

Cikan arama sonuclarina biraz goz atarsaniz “matematik bunu cozememistir” cevabindan tutunda “1 lira saticinin cebinde” diyene kadar, “soyut somut” olayina girip ortaya teoriler dokenine kadar bir cok cesitli cevaplar mevcut. Hatta soru bizi oylesine sartlandirmis ki gozlerimiz kor olmus adeta. Bazi sayfalarda cevabi dogru veren kisilere bile “hesabin hatali arkadasim, ortada 30 lira var ve 1 lirasi kayip” diye cevaplar yazilmis. Kisaca sebepsiz yere , sorunu tam olarak algilamadan, dusunmeden kendimizi 30 lirayi bulmaya sartlandirmisiz. 30 lira gercekten var midir ? Bulmamiz gereken sonuc gercekten 30 mudur diye hic dusunmeden.

ilerde kendi yazilim sirketimi kurdugumda is basvurusu icin gelen kisilere hangi dilleri biliyorsun sorusundan ziyade bu soruyu sormak istiyorum. Cunku sirkette bu soruyu cozmek icin epey ugrasan bir kisi zaten var. Bir tanesine daha gerek yok :)

delphi.blogda bu sorunun ne isi var diye dusunenlerden biraz daha sabir rica ediyorum. konuya girmeme az kaldi.

Kendimizi sartlandirma olayini sadece bu soruda degil malesef yazilim gelistirkende yapiyoruz. Sebepsiz yere kendimizi yanlis bir noktaya sartlandirip sonsuz bir donguye giriyoruz. Hobi amacli gelistirdigim bir projede teste dayali yazilim gelistirme yontemi kullanarak hobi amacli bir proje gelistiriyordum. TDD yontemini kullanirken yazdigim kodun % 100 u nu test edecek kodlar yazmam. Sadece yazilimin cekirdegini olusturan siniflarin kritik metodlari icin testler yazarim. Arabirim, bazi siniflarin birbiri ile iletisimi ve onemsiz ayrintilar icin test yazmak bana pek cazip gelmez. Boyle bir ortamin icerisindeyken projenin bazi calisma zamanlarinda yanlis isler yapip yanlis sonuclar dondurdugunu fark ettim. Hatayi duzeltmek icin ilk once birim testlerini kontrol ettim. her hangi bir sorun yoktu. Oyleyse test yazmadigim kodlar icerisinde gozden kacan bir kisim olmaliydi. aradim aradim aradim ama bulamadim. tekrar aradim aradim aradim yine bulamadim. artik oyle bir noktaya geldim ki sorunun delphin ya da windowstan kaynaklandigini dusunecek noktaya geldim. kafami toplamak icin biraz mola verdim. test yazmadigim kodlari yeniden kontrol ettim, hatali ya da hataya acik olabilecek cok fazla bir kod yoktu. Test yazmis oldugum kodlari incelemeye basladim. onlarda da bir hata gozukmuyordu. sonradan aklima yukarida anlattigim hikaye geldi. 1 lira nerde hikayesi. zamanin da 1 liranin nerde oldugunu cok aramis fakat sorunun beni sartlandirdigi yoldan gittigim icin bulmam biraz zor olmustu. Ne zaman ki farkli bir yol izleyerek soruyu cozmeye calismis o zaman “haaaaassssssseeekkkkttttooooorrrrr” demistim kendi kendime. ortada 1 lira yok ki 1 lirayi ariyorum iki saattir.

farkli yol ise suydu.
radyo 30 lira degilde 60 liraydi.
3 arkadas 20 ser lira verdiler radyoyu aldilar
sonra dukkan sahibi 10 lirayi geri gonderdi. cirak 10 lirayi 3 kisiye pay edemem diyerek
7 lirayi cebe atti ve 1 er lirayi geri verdi.

simdi elemanlar radyoyu 19 sar lira vererek kaca almis oldular soruya gore ?
57 liraya
e 7 lirayi da cirak cebe atmisti. 57+7 = 64 lira
hobaaaaa!
diger soruda 1 lira eksikti. bu soruda 4 lira fazla var :)

iste benim jeton burda dustu :)

bu dusunceyle varolan testlere alternatif olsun diye degisik rakam ve mantiklarla birer test daha yazdim. ve hobaaaa !

test ciftlerinden birisi testi gecerken birisi gecemedi.

1 lirayi ararken on yargilarim beni iki farkli yerde yaniltti.
1. si test yazdigim kodlarda hata yoktur diye iyice kontrol etmemem.
2. si test icerisinde yapilan islemi tek bir yolla kontrol etmenin beni hatalardan koruyacagini dusunmem.

Comments 1 Comment »