Je sais que cela peut être très spécifique au cas d'utilisation, mais je me pose trop souvent la question. Existe-t-il une syntaxe généralement préférée.
Je ne demande pas quelle est la meilleure approche quand dans une fonction, je demande si je dois quitter tôt ou si je n'appelle simplement pas la fonction.
Envelopper si autour de l'appel de fonction
if (shouldThisRun) {
runFunction();
}
Avoir si ( garde ) en fonction
runFunction() {
if (!shouldThisRun) return;
}
Cette dernière option a évidemment le potentiel de réduire la duplication de code si cette fonction est appelée plusieurs fois, mais il est parfois mal de l'ajouter ici, car vous risquez de perdre la responsabilité unique de la fonction.
Voici un exemple
Si j'ai une fonction updateStatus () qui met simplement à jour l'état de quelque chose. Je veux seulement que le statut soit mis à jour si le statut a changé. Je connais les endroits de mon code où le statut a le potentiel de changer, et je connais d'autres endroits où il a changé de défi.
Je ne suis pas sûr que ce soit juste moi, mais cela semble un peu sale de vérifier cette fonction interne car je veux garder cette fonction aussi pure que possible - si je l'appelle, je m'attends à ce que le statut soit mis à jour. Mais je ne peux pas dire s'il vaut mieux envelopper l'appel dans un chèque les quelques endroits où je sais qu'il a le potentiel de ne pas avoir changé.