En bref sur la dénomination dans JS

Bonjour, Habr! J'ai décidé d'aborder le sujet de la dénomination des entités en Javascript. Au travail, j'interagis beaucoup avec les stagiaires et j'en ai assez vu. J'ai donc pensé qu'il serait bien de rassembler dans une petite note les règles de nommage des entités adoptées aujourd'hui dans la communauté JavaScript. Peut-être que je n'ai pas tout collecté, donc je vous serais reconnaissant de bien vouloir me compléter dans les commentaires.

Dénomination d'entité


La dénomination est très importante dans le développement de logiciels. Comme nous le savons, le code est écrit principalement pour les personnes qui le liront (pour les programmeurs). Un mauvais nom peut augmenter considérablement les coûts de main-d'œuvre pour développer ou soutenir un projet en raison du temps supplémentaire passé à lire le code, comme avec une mauvaise dénomination, l'interprétation de «ce qui est quoi dans le code» est difficile.

Il existe différentes formes syntaxiques de noms, il y en a beaucoup, certaines ne sont plus utilisées. Voici les plus courants dans js:

  • Notation de chameau (CamelCase): MyClass
  • Snake_case: my_const
  • Notation barbecue (kebab-case): mes-données

Lors du choix d'un cas, il est important de considérer la norme actuellement acceptée. Dans js aujourd'hui, snake_case et kebab-case ne sont pas acceptés, mais ils peuvent être trouvés par exemple en Python ou Ruby .

Identifiants à lettre unique


Les institutions utilisent souvent des identifiants à une seule lettre dans le code. Je vois ce style de codage dans la moitié des gars qui viennent après le lycée. C'est une pratique très vicieuse. Le nom doit décrire clairement l'essence. De nos jours, l'utilisation d'identifiants à une seule lettre est un mauvais signe. Les exceptions peuvent être des compteurs et des indices, c'est-à-dire situations où une lettre est plus que suffisante pour transmettre l'essence de l'essence.

Translit dans le nom


Il est également très populaire parmi les étudiants d'utiliser la translittération. Bien sûr, c'est aussi un signe de mauvais goût et de mauvais code. Il ne doit pas y avoir de translittération dans la dénomination, car La langue courante dans la programmation est l'anglais. Lors de l'élaboration du code, nous devons utiliser la langue internationale que les professionnels de tous les pays connaissent. La translittération russe ne s'applique pas à ceux-ci.

Nommer des variables et des classes


Les variables sont nommées dans lower camelCase:

const maxCount = 10;

Les classes sont nommées dans CamelCase:

class EnumerableCollection {
//some code
}

Actions


Il est très important d'utiliser des verbes pour nommer des actions (par exemple, des fonctions). Vous devez choisir un tel verbe. ce qui correspond au type d'action.
Par exemple:

const checkNumberIsEven = (number) => (number % 2 === 0);

checkNumberIsEvenEst un bon nom. il est immédiatement clair que la fonction vérifie la parité du nombre.

Aussi un bon nom isEven - si cette fonction se trouve dans un /helpers/number.js, alors même un nom aussi court est plus que suffisant, car le répertoire lui-même nous dit qu'il contient des fonctions pour travailler avec des nombres. (Mais même ici, vous pouvez utiliser la première option, car dans un fichier qui utilise cette fonction, il peut y avoir beaucoup de code, et l'appel peut être quelque part dans milieu.) Les

fonctions sont loin d'être toujours des actions , il est également important de comprendre cela.
Par exemple,

const arifmeticalProgression = (start, depth, maxLength = 10) => {
  const progression = [start];
  const iter = (acc) => {
    if (acc.length >= maxLength) {
      return acc;
    }
    const newIndex = acc.length;
    const newItem = start + newIndex * depth;
    const newProgresion = [].concat(acc, newItem);
    return iter(newProgresion);
  };
  return iter(progression);
};

Cette fonction génère une progression arithmétique, mais ce n'est pas une action, car compte tenu de son caractère déclaratif, la définition de la progression arithmétique est considérée. Il est important de pouvoir distinguer ce moment. Cela inclut également des fonctions définissant des constantes.

const defaultCollection = () => ([]);

Prédicats


Ci-dessus, nous avons discuté de la fonction

const checkNumberIsEven = (number) => (number % 2 === 0);

Ce type de fonction est appelé prédicat. Un prédicat est une déclaration sur quelque chose. Les soi-disant fonctions exécutent des vérifications «l'essence est quelque chose». Un prédicat de programmation renvoie toujours une valeur booléenne.

En règle générale, les prédicats sont désignés par la forme singulière de la troisième personne du verbe auxiliaire anglais être , c'est-à-dire est .

const isEven = (number) => (number % 2 === 0);

Certains prédicats déterminent l' occurrence (présence) de l' élément souhaité (propriété ou méthode ou item'a) dans l'entité. Ces prédicats. commencent généralement par le verbe anglais has (verbe singulier de la troisième personne à avoir ). Par exemple, un formulaire sécurisé Object.prototype.hasOwnPropertypourrait ressembler à ceci:

const hasProp = (obj, key) => (Object.prototype.hasOwnProperty.call(obj, key));

Si une entité est une quantité de quelque chose, vous devez utiliser le mot count dans le nom.

All Articles