Maison >interface Web >js tutoriel >Code propre : pourquoi les indicateurs booléens dans les paramètres de fonction sont une odeur de code
Les indicateurs booléens dans les paramètres de fonction peuvent rendre votre code plus difficile à lire et à maintenir. Voyons pourquoi vous devriez les éviter et ce que vous pouvez faire à la place.
L'utilisation d'un paramètre booléen signifie souvent que votre fonction fait deux choses différentes, enfreignant ainsi le principe de responsabilité unique (SRP). Voici un exemple typique :
function createFile(name, isTemp) { if (isTemp) { fs.create(`./temp/${name}`); } else { fs.create(name); } }
Cela peut paraître simple, mais cela pose plusieurs problèmes :
createFile("log.txt", true); // What does 'true' mean here?
Deux fonctions en une : Le booléen fonctionne comme un interrupteur, permettant à la fonction de faire des choses différentes
Les tests deviennent plus difficiles : Vous devez vérifier dans les deux sens la fonction peut fonctionner
Difficile d'ajouter des fonctionnalités : Si vous avez besoin d'une troisième option plus tard, vous pourriez ajouter un autre booléen, ce qui aggraverait les choses
Divisez la fonction en deux fonctions distinctes, chacune faisant une chose :
function createFile(name) { fs.create(name); } function createTempFile(name) { createFile(`./temp/${name}`); }
Cela vous donne :
Effacer les noms : createTempFile("log.txt") vous indique exactement ce qu'il fait
Logique simple : Chaque fonction ne fait qu'une seule chose
Tests faciles : Vous n'avez besoin de tester qu'une seule chose par fonction
Des fonctionnalités simples à ajouter : Besoin de quelque chose de nouveau ? Ajouter une nouvelle fonction sans changer les anciennes
Cette idée fonctionne dans de nombreuses situations. Voici quelques cas :
// ❌ Bad function authenticate(user, isAdmin) { if (isAdmin) { // Admin login logic } else { // Regular user login logic } } // ✅ Good function authenticateUser(user) { // Regular user login logic } function authenticateAdmin(user) { // Admin login logic }
// ❌ Bad function sendEmail(user, isHtmlFormat) { if (isHtmlFormat) { // Send HTML email } else { // Send plain text email } } // ✅ Good function sendPlainTextEmail(user) { // Send plain text email } function sendHtmlEmail(user) { // Send HTML email }
Les indicateurs booléens dans les paramètres de fonction montrent souvent qu'une fonction essaie d'en faire trop. Créer des fonctions séparées et ciblées crée un code qui est :
La prochaine fois que vous souhaiterez ajouter un paramètre booléen, pensez plutôt à créer deux fonctions.
Avez-vous essayé de diviser des fonctions comme celle-ci dans votre code ? Est-ce que ça a aidé ? Faites-le moi savoir dans les commentaires !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!