Maison >interface Web >js tutoriel >Odeur de code – DirName et fichier
Évitez les noms ambigus pour les variables de chemin
TL;DR : utilisez des noms clairs pour une meilleure compréhension du code.
Lors de la gestion d'un seul fileName ou directoryPath, des noms vagues comme file ou dirName créent de la confusion.
Des noms clairs comme fileName pour les noms et directoryPath pour les répertoires communiquent le rôle de chaque variable.
Lorsque vous nommez un fichier variable, cela peut dérouter les autres quant à son objectif. Stocke-t-il un objet fichier ou simplement le nom du fichier ?
Lorsque vous nommez une variable dirName au lieu de directoryName, cela conduit à une ambiguïté.
Les noms de variables clairs et descriptifs améliorent la lisibilité et la maintenabilité du code, en particulier dans les environnements collaboratifs.
function importBoardGameScores(file) { if (file) { const data = fs.readFileSync(file, 'utf-8'); // Process board game scores... } } function importDirectoryScores(dirName) { // 'dir' is an abbreviation const files = fs.readdirSync(dirName); files.forEach(file => { const data = fs.readFileSync(`${dirName}/${file}`, 'utf-8'); // Process each file's board game scores... }); } }
function importBoardGameScores(fileName) { if (fileName) { const data = fs.readFileSync(fileName, 'utf-8'); // Process board game scores... } } function importDirectoryBoardGamesScores(directoryPath) { const fileNames = fs.readdirSync(directoryPath); // Note the variable holding filenames // and not files fileNames.forEach(filename => { const fullPath = path.join(directoryPath, filename); const scores = importBoardGameScores(fullPath); allScores.push(scores); }); return allScores.flat(); // You can also reify the concept of a filename // And avoid repeating the rules everywhere class Filename { value; constructor(value) { this.validateFilename(value); this.value = value; } validateFilename(value) { const invalidCharacters = /[<>:"/\|?*\x00-\x1F]/g; if (invalidCharacters.test(value)) { throw new Error ('Filename contains invalid characters'); } if (/^[. ]+$/.test(value)) { throw new Error ('Filename cannot consist only of dots or spaces'); } if (value.length > 255) { throw new Error ('Filename is too long'); } } toString() { return this.value; } get value() { return this.value; } }
[X] Semi-automatique
Recherchez des noms génériques dans les fichiers de gestion de code ou les chemins de répertoire comme file ou dirName.
[x] Débutant
Les modèles d'IA peuvent utiliser par défaut des noms ambigus comme file ou dirName sans instructions spécifiques.
L'ajout de directives de dénomination descriptive et d'extraction de code peut améliorer le résultat de l'IA.
Les outils d'IA peuvent corriger cette odeur en utilisant des conventions de dénomination claires et en suggérant l'extraction de code si vous y êtes invité pour éviter le code redondant.
Rappelez-vous : les assistants IA font beaucoup d'erreurs
Without Proper Instructions | With Specific Instructions |
---|---|
ChatGPT | ChatGPT |
Claude | Claude |
Perplexity | Perplexity |
Copilot | Copilot |
Gemini | Gemini |
En utilisant des noms précis comme fileName et directoryPath et en extrayant des méthodes réutilisables, vous améliorez la clarté et la maintenabilité du code.
Ces pratiques simples aident à réduire la redondance et à garder votre code compréhensible.
Les odeurs de code sont mon opinion.
Photo de Gabriel Heinzer sur Unsplash
Le code doit être écrit pour être lu par les humains en premier, et par les machines ensuite.
Don Laabs
Cet article fait partie de la série CodeSmell.
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!