Pergunta

Um aspecto javascript que é difícil encontrar informações sobre se casing práticas. Por invólucro práticas, quero dizer que casing estilo (ie. Camel-case, pascal-case, etc) deve ser usado para o que elementos (Construtores, funções privadas, funções públicas).

A única regra que eu ouvi foi de uma palestra Douglas Crockford no YUI teatro, afirmando que os construtores deveriam ser as únicas funções que começam com uma letra maiúscula.

Além de que não parece ser muitos padrões de revestimento que as pessoas seguem em javascript.

Alguém conhece algum casing melhores práticas para javascript, e por isso é razoável para usá-los?

Além disso você segue um estilo de caixa com seus arquivos de .js?

Foi útil?

Solução

Eu prefiro PascalCase para construtores e camelCase para tudo o resto. Esse é o estilo que JS utiliza a biblioteca padrão e bem ... cada quadro JS que eu vi até agora:)

E eu uso all_lowercase convenção de nomenclatura para todos os arquivos servidos a partir da web. Há alguns sistemas de arquivo maiúsculas e minúsculas lá fora.

Outras dicas

O núcleo usa a linguagem InitialCaps para construtores de objectos (por exemplo, data, número, RegExp) e camelCase para métodos e as propriedades (por exemplo something.toString (), quantity.valueOf (), regexp.ignoreCase). Esta convenção é também seguida nas especificações DOM e implementações (por exemplo HTMLElement.setAttribute ()). Por isso, faz mais sentido adotar a mesma convenção, ou você terminar com uma mistura horrível de estilos como:

var number_of_fish_requested = document.getElementById("fish").value;
var fish_count = parseInt(number_of_fish_requested, 10);

o que só se torna totalmente confuso, não só para digitar, mas, muito mais importante, para ler.

(Você gasta mais de código tempo lendo, tentando depurar ou modificá-lo, do que alguma vez não escrevê-lo em primeiro lugar.)

O que eu tenho visto até agora é uma enorme diversidade de invólucro padrões.

Tanto quanto eu estou preocupado, eu uso C # styling para escrever meu código JavaScript. Eu uso as classes muito (bem funções como classes, e, geralmente, não têm funções independentes.) Então, eu uso PascalCase para nomes de classes, métodos públicos, propriedades e todas as variáveis ??globais e camelCase para argumentos, variáveis ??locais e eventos privados. Isso de alguma forma reflete meu ambiente comum, ajudando a distinguir os escopos de variável. Eu também tendem a manter as minhas funções de classe em um arquivo separado com o mesmo nome que o meu ClassName (ClassName.js, ClassName.min.js).

Esta foi a minha abordagem.

Notei também que os programadores Java, siga as regras Java (e o estilo de escrita se assemelha a linguagem Java.) Ruby on Rails programadores seguir seus próprios padrões de nomes como underscore_separated_var_name.

Além disso, como você mencionou, há uma tendência ao uso pascalCase muito em nomear nos quadros muito populares cujos autores vêm de comunidades diferentes, como Linux / comunidade open source e desenvolvedores da Microsoft (jQuery, knockout.js, JSJaC, etc. )

Gostaria de salientar que nenhum desses métodos são certo ou errado, quando se trata de JS. O objetivo principal de suas convenções de nomenclatura e estruturação de arquivos é a legibilidade. Se você for consistente, então você no futuro e seus desenvolvedores companheiros vão entender rapidamente e continuar com o seu código.

Eu prefiro camelCase para tudo, exceto para os construtores. A razão (e eu acredito que é por isso que o Sr. Crockford sugeriu este também) é porque em outras linguagens, como Java, a convenção é capitalizar suas classes, que é o que os construtores são usados ??para.

Esse é o meu $ 0,02.

Todos minúsculas com separadores sublinhado é o mais fácil de ler; segue-se a linguagem natural. "Melhor", poderá ir para uma guerra santa; a realidade é caso não importa tanto quanto as outras questões de design, mas é um tema fácil para polarizar.

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier

A resposta aceita é verdade, mas há algumas exceções. Em window.JSON e window.XMLHttpRequest o termo é capitalizado.

Além disso a maioria das pessoas usam PascalCase para objetos do tipo enum em Javascript e valores capitalizados dentro. Às vezes, namespaces são feitas em PascalCase também.

exemplo: MyCompany.Web.UI.MyComponent.ThemeOption = {PRETO: 0, PRATA: 1, AZUL: 2}

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top