Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Convenções JavaScript.

Gostaria de saber de onde surgiu a convenção de se usar underline para especificar que apenas os métodos de um controlador podem acessar os seus respectivos atributos. O professor menciona que é uma boa prática, mas gostaria de saber se existe algum lugar onde isso foi acordado/é especificado para a comunidade em geral, de onde veio essa informação?

4 respostas

Olá Guilherme, isso é um acordo da comunidade, mas creio que não é nada formalizado. Eu achei um questionamento em um repositório que o rapaz faz essa pergunta, e em algum ponto, se eu não me engano, uma das pessoas que está participando da discussão fala que acontecem muitos erros pois as pessoas não sabem sobre isso e acabam ignorando que esses atributos são "privados".

Segue o link https://github.com/airbnb/javascript/issues/1024

Tem bastante coisa na internet sobre o assunto, mas eu não achei um lugar que formalize isso, é algo da comunidade em si.

Isso é uma convenção, mas pode ser que o pessoal da equipe que você trabalha acaba não seguindo.

Espero que alguém mais que veja esse tópico e saiba de mais informações compartilhe-as.

_DONTFUCKINGCHANGEmyProperty haha

Entendi, obrigado pela contribuição Joel, aguardamos então alguma possível contribuição de outras pessoas ao tópico. Tendo isso em vista, aguardarei mais um pouco para marcá-lo como solução.

solução

Oi Guilherme, tudo bem?

Realmente se trata de uma convenção da comunidade. Utilizamos o underscore para definir que determinado elemento deve ser tratado como privado.

Não existe nada oficializado em relação à essa pratica, porém a prática de se utilizar ou não está diretamente ligada à decisão da equipe. Entretando, existem algumas discussões relacionadas à isso, como você pode ver:

Javascript Identifiers

E também nessa discussão.

Contudo, algo bastante comum é que equipes e empresas sigam guias de estilo de código de outras empresas (Style Guides), ou definam um guia próprio. Atualmente temos 3 style guides bastante utilizados, da Airbnb, Js Standard e Google.

No style Guide da Airbnb, é recomendado que você não utilize underscore para sinalizar um método/elemento privado.

No JS Standard, underscore não é mencionado.

No Google Style guide, a recomendação é que o underscore apareça no final do nome do método/elemento, junto com uma anotação @private.

O legal dessa conversa é que não existe maneira correta, o correto é definir um junto de sua equipe e seguir as regras à risca, de maneira a se padronizar o código, evitando que vire uma bagunça. Também é possível configurar Linters para validação do seu código seguindo as recomendações desses style guides, facilitando bastante a vida.

Dito tudo isso, recomendo que dê uma olhada em qual te agrada mais, ou se tem interesse de definir um estilo próprio. Particularmente, hoje em dia vejo bastante gente utilizado o underscore no início para definição de elementos privados. Mas vai do gosto de cada um.

Espero que tenha esclarecido.

Abraços e sucesso.

Oi Guilherme,

Fico feliz que tenha te ajudado.

Estou fechando o tópico, caso tenha alguma nova dúvida basta criar um novo!

Abraços.