So che questo può essere molto specifico per ogni caso d'uso, ma mi trovo a chiedermelo troppo spesso. Esiste una sintassi generalmente preferita.
Non sto chiedendo quale sia l'approccio migliore quando in una funzione, chiedo se dovessi uscire presto o semplicemente non dovrei chiamare la funzione.
Avvolgere se intorno alla chiamata di funzione
if (shouldThisRun) {
runFunction();
}
Avere se ( guardia ) in funzione
runFunction() {
if (!shouldThisRun) return;
}
Quest'ultima opzione ha ovviamente il potenziale per ridurre la duplicazione del codice se questa funzione viene chiamata più volte, ma a volte sembra sbagliato aggiungerla qui perché si potrebbe perdere la responsabilità singola della funzione.
Ecco un esempio
Se ho una funzione updateStatus () che aggiorna semplicemente lo stato di qualcosa. Voglio aggiornare lo stato solo se lo stato è cambiato. Conosco i posti nel mio codice in cui lo stato ha il potenziale per cambiare e conosco altri posti in cui è cambiato in modo provocatorio.
Non sono sicuro che sia solo io, ma mi sembra un po 'sporco controllare questa funzione interna poiché voglio mantenere questa funzione il più pura possibile - se la chiamo mi aspetto che lo stato venga aggiornato. Ma non posso dire se è meglio racchiudere la chiamata in un check nei pochi posti in cui so che ha il potenziale per non essere cambiato.