[]

Fonksiyonlar return etmeli mi void mi olmali

bir isten sorumlu bir fonksiyon olsun,
ya DB'den veri ceksin yada bi URL'e get request atsin.
yani ortak yanlari dis mihraklarla calisiyor olmalari.

bu tarz fonksiyonlar:
-islem sonucunun basarili olup olmadigini gostermek icin boolean mi donmeli

yoksa

-zaten iclerinde gerekli exception'lar catch'leniyor, olasi bir sorunda haberin olur diye void mi olmali

nasil olmali yaklasim?

 
void olmalı. parse error vermemesi için boolean'dan get edebilirsin ama o zaman da içine return false verdiğinde trigger yapan bir setup koymalısın.


  • anonymice  (11.12.15 16:56:52) 
genellikle exception cikarsa bilgi alabilmek icin string kullaniyorum.
eger kullaniciya bilgi gostermen gerekmiyorsa ama sonuc lazimsa bool kullanabilirsin.

soruyu mimariden, dilden, gereksinimlerden bagimsiz cevepladigimi belirteyim.
  • ekyil  (11.12.15 17:09:56) 
finksiyondan disari kendi tasarlayabilecegin( MyResponse diyelim) zengin bir obje donebilirsin. MyResponse sinifinin icinde asagidagi alanlar olur:
response code (int)
Response desc (string)
ResponseData (generic type)
Exception (ex tipinde)

Bu sayede fonksiyonu cagiran tarafta hep standart bir paketi handle edersin.
Bu yaklasim tarzi basi design patternlerde kabul gormeyebilir.
  • mononoke  (11.12.15 17:29:49) 
Zaten sonrak işlemleri gerçekleştirmesi için dbye bağlanması lazım mesela. O sebeple sonrasının devamı için o işlemlerin geçrekleşmesi lazım. Gerçeklşmemişse printstackte dönüyor zaten ve somnrasında errorhandling tarzı metotlar yapıyorum. MEsela android lokasyonda fusiden alamayınca normal locationrequeste geç diyorum. Boolean çok nadir kulalnıyorum.


  • Cursed Chico  (11.12.15 19:58:50) 
şimdi burada şöyle bir durum var, diyelim ki bir yere istekte bulunuyorsunuz ve istek başarısız, bu durumda bu bilgiyi bir yere kaydedip başarısız ise hemen veya daha sonra denemeniz gerekiyor ise boolean veya duruma göre sum (obje vs.) döndürmeniz mantıklı, ama fire and forget gibi dene olursa ekime olmazsa ... durumu var ise void.

eğer hemen X adet denemeniz gerekiyor ise döngü yerine recursive kullanıp boolean döndürmek yerine kendisini çağırmanız daha mantıklı zira her return bildirimi stack üzerinde işlem yapılmasına neden oluyor bu da stack'in şişmesine ve performans problemlerine neden olabiliyor.

for more information read "tail call" tabii birde premature optimizations root of evil.
  • selam  (13.12.15 13:25:06) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.