Brevemente sobre nomeação em JS

Olá Habr! Decidi abordar o tópico de nomear entidades em Javascript. No trabalho, interajo muito com estagiários e já vi o suficiente. Por isso, pensei que seria bom coletar em uma pequena nota as regras de nomeação de entidades adotadas hoje na comunidade JavaScript. Talvez eu não tenha colecionado tudo, então ficaria agradecido se você me suplementasse nos comentários.

Nomenclatura da entidade


A nomeação é muito importante no desenvolvimento de software. Como sabemos, o código é escrito principalmente para pessoas que o leem (para programadores). A má nomeação pode aumentar significativamente os custos de mão-de-obra para desenvolver ou apoiar um projeto devido ao tempo extra gasto lendo o código, com má nomeação, a interpretação de "o que é o que está no código" é difícil.

Existem diferentes formas sintáticas de nomes, existem muitas, algumas não estão mais em uso. Aqui estão os mais comuns em js:

  • Notação de Camelo (CamelCase): MyClass
  • Snake_case: my_const
  • Notação de churrasco (kebab-case): meus-dados

Ao escolher um caso, é importante considerar o padrão atualmente aceito. Hoje em js, snake_case e kebab-case não são aceitos, mas podem ser encontrados, por exemplo, em Python ou Ruby .

Identificadores de letra única


As instituições geralmente usam identificadores de letra única no código. Eu vejo esse estilo de codificação em metade dos caras que vêm depois do ensino médio. Esta é uma prática muito cruel. O nome deve descrever claramente a essência. Atualmente, o uso de identificadores de letra única é um mau sinal. As exceções podem ser contadores e índices, ou seja, situações em que uma letra é mais que suficiente para transmitir a essência da essência.

Traduzir em nome


Também é muito popular entre os alunos usar a transliteração. Obviamente, isso também é um sinal de mau gosto e código ruim. Não deve haver transliteração na nomeação, porque O idioma comum na programação é o inglês. Ao desenvolver o código, devemos usar o idioma internacional que os profissionais de qualquer país conhecem. A transliteração russa não se aplica a elas.

Nomeando Variáveis ​​e Classes


As variáveis ​​são nomeadas em lower camelCase:

const maxCount = 10;

As classes são nomeadas em CamelCase:

class EnumerableCollection {
//some code
}

Ações


É muito importante usar verbos para nomear ações (por exemplo, funções). Você precisa escolher esse verbo. que corresponde ao tipo de ação.
Por exemplo:

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

checkNumberIsEvenÉ um bom nome. fica imediatamente claro que a função verifica o número quanto à paridade.

Também é um bom nome isEven - se essa função estiver em qualquer /helpers/number.js, mesmo um nome curto será mais que suficiente, porque o próprio diretório nos diz que contém funções para trabalhar com números. (Mas mesmo aqui você pode usar a primeira opção, porque um arquivo que usa essa função pode ter bastante código, e a chamada pode estar em algum lugar meio.) As

funções estão longe de ser sempre ações , também é importante entender isso.
Por exemplo,

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);
};

Essa função gera uma progressão aritmética, mas não é uma ação, porque devido à sua natureza declarativa, é considerada a definição de progressão aritmética. É importante ser capaz de distinguir esse momento. Isso também inclui funções que definem constantes.

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

Predicados


Acima discutimos a função

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

Esse tipo de função é chamado de predicado. Um predicado é uma afirmação sobre algo. As chamadas funções estão executando verificações "a essência é alguma coisa". Um predicado de programação sempre retorna um valor booleano.

Como regra geral, os predicados são referidos através do formulário singular terceira pessoa do verbo auxiliar Inglês a ser , ou seja, é .

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

Alguns predicados determinam a ocorrência (presença) do elemento desejado (propriedade ou método ou item'a) na entidade. Tais predicados. normalmente começa com o verbo inglês has (verbo singular da 3ª pessoa a ter ). Por exemplo, um formulário seguro Object.prototype.hasOwnPropertypode ser assim:

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

Se uma entidade é uma quantidade de algo, você deve usar a palavra count no nome.

All Articles