Io lavoro su un sacco di codice che è pieno di logica aziendale in continua evoluzione e deve essere modificato ogni giorno. Due suggerimenti che mi hanno sicuramente aiutato a tenere il passo con le modifiche sono: evitare tutte le altre istruzioni e tornare/uscire il prima possibile. Non entrare mai in nidificazione profonda -> creare sotto-routine/funzioni.
Sostituzione di tutti else con negata se le dichiarazioni rende il codice più facile da leggere verso il basso (la vicinanza del condtion e il blocco di codice):
# business logic block
if ($condition) {
# do something
# code code code
} else {
# code code code
return;
}
# refactored:
if (! $contition) {
# code code code
return;
}
if ($condition) {
# code code code
}
In secondo luogo, il ritorno/uscita il più presto possibile . La mia opinione ovviamente, ma non vedo il punto di passare attraverso condizioni/test aggiuntivi quando una volta hai già determinato il risultato della subroutine, specialmente quando vorresti leggere il codice dall'alto in basso. Rimuovere tutte le ambiguità rende le cose più semplici.
Per concludere, mi piace evitare di utilizzare altro in particolare nelle lunghe liste di BL. Torna appena conosci il risultato. Se il livello di nidificazione è superiore a 2, creare sub-routine/funzioni.
+1 Questo è molto importante in quanto può ridurre le dimensioni del file di diversi KB! – Xeoncross
+1 Vale anche per continuare, rompere, lanciare.Spesso è possibile mantenere la complessità ciclica bassa in questo modo e rendere quindi il codice più leggibile. – NikiC
Anche io personalmente userei solo 'return userIsLoggedIn() && is_array ($ param) && $ param ['count']> 0;' qui. È breve e conciso. – NikiC