Pour éviter de perdre des heures à débuguer des problèmes qui vont se poser à un moment, et que l'on peut éviter avec un peu d'anticipation, il me semblerait très utile de gérer plus strictement les variables dans le code existant.
Plusieurs points d'amélioration :
-
Éviter les variables globales
Risque de conflits et d'effets de bord en tout genre...
⛔ déclaration d'une variable avec var dans le contexte principal d'un script, en dehors d'une fonction et d'un module
✅ déclaration d'une variable avec let à l'intérieur d'un bloc, d'une fonction ou d'un module
-
Utiliser const (par défaut) et let (si besoin de réaffecter une valeur) plutôt que var
Pour réduire la portée des variables et garder la maîtrise avec plus de contraintes
⛔ var obj = {};
✅ const arr = [];
✅ let str = '';
-
Éviter de mélanger aléatoirement les styles de nommage
Confusion inévitable (coucou PHP !)
⛔ const totoTata_titi;
✅ camelCase pour toutes les variables (comme pour les méthodes de base en JS, dans les prototypes)
✅ snake_case pour toutes les variables (plus courant en Python qu'en JavaScript)
✅ PascalCase pour le cas particulier des classes
-
En dehors d'un module, préférer les expressions de fonctions aux déclarations de fonctions
Incompréhension du fait que les fonctions déclarées peuvent être appelées, sans erreur, bien avant leur apparition dans le code car elles sont remontées automatiquement pour l'exécution du programme (hoisting) ; contrairement aux variables
⛔ function fn() {}
✅ const fn = function() {};
✅ const fn = () => {};
Pour éviter de perdre des heures à débuguer des problèmes qui vont se poser à un moment, et que l'on peut éviter avec un peu d'anticipation, il me semblerait très utile de gérer plus strictement les variables dans le code existant.
Plusieurs points d'amélioration :
Éviter les variables globales
⛔ déclaration d'une variable avec
vardans le contexte principal d'un script, en dehors d'une fonction et d'un module✅ déclaration d'une variable avec
letà l'intérieur d'un bloc, d'une fonction ou d'un moduleUtiliser
const(par défaut) etlet(si besoin de réaffecter une valeur) plutôt quevar⛔
var obj = {};✅
const arr = [];✅
let str = '';Éviter de mélanger aléatoirement les styles de nommage
⛔
const totoTata_titi;✅ camelCase pour toutes les variables (comme pour les méthodes de base en JS, dans les prototypes)
✅ snake_case pour toutes les variables (plus courant en Python qu'en JavaScript)
✅ PascalCase pour le cas particulier des classes
En dehors d'un module, préférer les expressions de fonctions aux déclarations de fonctions
⛔
function fn() {}✅
const fn = function() {};✅
const fn = () => {};