Quale è meglio? Vedo pro e contro per entrambi, quindi non posso davvero decidere su quale si debba attenersi.
Wrap in if clausola
function doIt() {
if (successfulCondition) {
whenEverythingGoesWell();
}
}
- Pro : mostra l'intenzione del programmatore tramite indentazione.
-
Con : l'indentazione può diventare davvero profonda se hai bisogno di cortocircuitare molte volte. Ad esempio,
doThirdThing()
richiede il successo didoSecondThing()
, che a sua volta richiede il successo didoFirstThing()
. Questo accade molto nello sviluppo web in cui molti servizi web non sono affidabili.
Ritorno prematuro
function doIt() {
if (!successfulCondition) {
return;
}
whenEverythingGoesWell();
}
- Pro : i checkin di Subversion sarebbero succinti. A volte, vedo i colleghi avvolgere funzioni molto lunghe in una clausola if. L'intero shebang viene registrato e rende difficile la lettura di Subversion.
- Con : richiede di leggere l'intera funzione per capire i vari percorsi di esecuzione.