Forum » Programiranje » '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:
sedaj povecini vsa koda, ki jo pisemo, zgleda tako:
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:)
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.
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5194 (2646) | jype |
» | Arduino in luči (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 12174 (9800) | FX6300B |
» | Kontakt obrazecOddelek: Izdelava spletišč | 2069 (1914) | betmen |
» | Coursera naloga (python)Oddelek: Programiranje | 1981 (1609) | jype |
» | [Java] While zankaOddelek: Programiranje | 2379 (1962) | kunigunda |