» »

'optimisticno' vs 'neoptimisitcno' programiranje

'optimisticno' vs 'neoptimisitcno' programiranje

illion ::

Cisto iz firbca me zanima, kaksna je povecini vasa koda, kar se tice handlanja rezultatov/inputov.. v raznih metodah ipd.
Zadnje case ugotavljam, da se je, povsej verjetnosti zaradi dela z nodejs, moj stil spremenil. V nodejs je bilo v pre-promise/rx dobi vse zastavljeno asinhrono, kjer si v callbacke dobil err in response:
dosomething( (err, result) => {
 if(err) {
  // handle error
 } else {
  // handle result
 }
})


sedaj povecini vsa koda, ki jo pisemo, zgleda tako:

handleResponse( some_input => {
 // handle errors:
 if(!some_input) { /* invalid input fail */ }
 else if(some_input.error) { /* something went wrong somewhere */ }
 else if(some_input.payload) { /* something is missing */ }
 else if('object' !== typeof some_input.payload) { /* input is of wrong type */ }
 else {
  // seems ok..
 }
})


torej; prvo pesimisticno pregledamo vse mozne napake, sele potem pohandlamo dejanski rezultat. Se mi zdi, kot da se v implementaciji odraza bojazen/stevilo bugov med testiranjem in razvijanjem kode. Sedaj se prisilno lotevam 'optimisticnega' pristopa:)

Dpool ::

Ne vem, če na isto misliva.. ampak recimo v Javi je kar kul ideja try/catch blokov, ki to dobro asistirajo pri handlanju morebitnih exceptions, ki se lahko zgodijo v Try bloku.

Smurf ::

Najlepse je (ponavadi), da das na prvo mesto tisto zadevo, ki se najpogosteje zgodi.

Nublet ::


handleResponse( some_input => {
 // handle errors:
 if(!some_input) { /* invalid input fail */ }
 else if(some_input.error) { /* something went wrong somewhere */ }
 else if(some_input.payload) { /* something is missing */ }
 else if('object' !== typeof some_input.payload) { /* input is of wrong type */ }
 else {
  // seems ok..
 }
})


Osebno bi zgornjemu pesimizmu dodal še try/catch blok, kot že omenjeno, tako da si daš še en safety net če slučajno pozabiš kako napako ročno shendlat:

handleResponse( some_input => {
 // handle errors:
 try{
  if(!some_input) { /* invalid input fail */ }
  else if(some_input.error) { /* something went wrong somewhere */ }
  else if(some_input.payload) { /* something is missing */ }
  else if('object' !== typeof some_input.payload) { /* input is of wrong type */ }
  else {
   // seems ok..
  }
 }catch(err){
  //something went horribly wrong in unforseen ways
 }
})


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Slo-Tech userscripts

Oddelek: Izdelava spletišč
175000 (2452) jype
»

Arduino in luči (strani: 1 2 )

Oddelek: Elektrotehnika in elektronika
9811526 (9152) FX6300B
»

Kontakt obrazec

Oddelek: Izdelava spletišč
61968 (1813) betmen
»

Coursera naloga (python)

Oddelek: Programiranje
161818 (1446) jype
»

[Java] While zanka

Oddelek: Programiranje
262216 (1799) kunigunda

Več podobnih tem