Ho una grande struttura dati che sta per essere persistente nel database. Prima che ciò possa accadere, devo convalidarlo e quindi aggiornare un gruppo di sue proprietà in base a varie condizioni specifiche.
Quale stile è più leggibile, con una serie di istruzioni if / else che determinano quali funzioni verranno eseguite in condizioni specifiche o un semplice elenco di funzioni da eseguire che contengono al loro interno le condizioni in base alle quali devono essere eseguite?
Il primo mi dà indentation inferno e if if annidato, il secondo sembra pulito ma dà l'impressione che l'elenco di funzioni venga sempre eseguito e richiede la visualizzazione di ciascuna funzione per vedere le circostanze in cui ciascuna funzione verrà eseguita.
Esempio di if / else style:
function myFunc(myThing){
if(myThing.myProp === 'someValue'){
doStuff();
if(myThing.myProp2 === 1){
doAThing();
} else {
doADifferentThing();
}
} else {
doOtherStuff();
}
}
Esempio di condizioni nidificate nelle funzioni:
function myFunc(myThing){
doStuff(myThing);
doAThing(myThing);
doADifferentThing(myThing);
doOtherStuff(myThing);
}
function doStuff(myThing){
if(myThing.myProp === 'someValue'){
//Do stuff
}
}
function doAThing(myThing){
if(myThing.myProp === 'someValue' && myThing.myProp2 === 1){
//Do a thing
}
}
function doADifferentThing(myThing){
if(myThing.myProp === 'someValue' && myThing.myProp2 !== 1){
//Do a different thing
}
}
function doOtherStuff(myThing){
if(myThing.myProp !== 'someValue'){
//Do other stuff
}
}
Questi esempi non sono perfetti, ma si spera che trasmettano ciò che sto chiedendo.