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šč | 5487 (2939) | jype |
| » | Arduino in luči (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 13079 (10705) | FX6300B |
| » | Kontakt obrazecOddelek: Izdelava spletišč | 2219 (2064) | betmen |
| » | Coursera naloga (python)Oddelek: Programiranje | 2204 (1832) | jype |
| » | [Java] While zankaOddelek: Programiranje | 2575 (2158) | kunigunda |