Pergunta

Existem muitos estilos diferentes de nomes de variáveis ??que eu me deparei ao longo dos anos.

A entrada wikipedia atual sobre convenções de nomenclatura é bastante leve ...

Eu adoraria ver um catálogo concisa de naming-convenções variáveis, identificando-o por um nome / descrição, e alguns exemplos.

Se uma convenção é particularmente favorecido por uma determinada comunidade plataforma, que seria digno de nota, também.

Eu estou transformando isso em uma comunidade wiki, por isso, criar uma resposta para cada convenção e editar conforme necessário.

Foi útil?

Solução

O melhor conjunto convenção de nomeação que eu vi é no livro "Complete Código " Steve McConnell tem uma grande seção de lá sobre convenções de nomenclatura e muitos exemplos. Seus exemplos executado através de uma série de "melhores práticas" para diferentes idiomas, mas finalmente deixar isso para o desenvolvedor, dev gerente, ou arquiteto para decidir a ação específica.

Outras dicas

PEP8 é o guia de estilo para o código Python que faz parte da a biblioteca padrão que é relativamente influente na comunidade Python. Para pontos de bônus, além de cobrir as convenções de nomenclatura utilizadas pela biblioteca padrão do Python, ele fornece uma visão geral de convenções de nomenclatura em geral.

De acordo com PEP8: variáveis, variáveis ??de instância, funções e métodos na biblioteca padrão são supostamente para usar as palavras minúsculas separadas por sublinhados para facilitar a leitura:

foo
parse_foo
a_long_descriptive_name

Para distinguir um nome de uma palavra reservada, anexar um sublinhado:

in_
and_
or_

Nomes que são fracamente privada (não importado por 'de M import *') começar com um único sublinhado. Nomes cuja privacidade é aplicada com início desconfiguração do nome com sublinhados duplos:.

_some_what_private
__a_slightly_more_private_name

Nomes que são Python 'especial' métodos começam e terminam com sublinhados duplos:

__hash__  # hash(o) = o.__hash__()
__str__   # str(o) = o.__str__()

Sun publicou uma lista de convenções nome da variável para Java aqui . A lista inclui as convenções para nomear pacotes, classes, interfaces, métodos, variáveis ??e constantes.

A seção sobre variáveis ??estados

Com exceção de variáveis, todas as instâncias, classe e constantes da classe estão em maiúsculas e minúsculas com uma primeira letra minúscula. palavras internas começam com letras maiúsculas. Nomes de variáveis ??não devem começar com underscore _ ou cifrão $ personagens, mesmo que ambos são permitidos.

Nomes de variáveis ??devem ser ainda curta significativa. A escolha de um nome de variável deve ser mnemonic- isto é, projetado para indicar para o observador casual a intenção de seu uso. nomes de variáveis ??de um caractere deve ser evitado exceto para variáveis ??temporárias "descartáveis". Os nomes comuns para variáveis ??temporárias são i, j, k, m, e n para inteiros; c, d, e e por caracteres.

Alguns exemplos incluem

int             i;
char            c;
float           myWidth;

Seja qual for a sua convenção de nomeação é, geralmente não permitem distinguir facilmente:

  • instância (geralmente privada) variável
  • variáveis ??locais (utilizados como parâmetros ou local para uma função)

Eu uso uma convenção de nomenclatura baseado em um uso de indefinida artigo (a, an , alguns) para variáveis ??locais, e não há nenhum artigo de variáveis ??de instância, como explicado nesta pergunta sobre variável prefixo .

Assim, um prefixo (seja do meu jeito, ou qualquer outro prefixo listados em que pergunta ) pode ser uma maneira de refino variável convenção de nomenclatura.

Eu sei que sua pergunta não é limitado de variáveis, eu só queria salientar que parte da convenção de nomenclatura.

Há, a "Java Programmers Phrasebook" por Einar Hoest.

Ele analisou a estrutura gramatical de nomes de métodos, juntamente com a estrutura dos corpos de método, e coletadas informações como:

add [substantivo] - * Estes métodos frequentemente têm parâmetros e criar objetos. Eles muito raramente retornar valores de campo. A frase aparece em praticamente todos aplicações.

etcetera ... coletadas de centenas de projetos de código aberto.

Para mais informações de fundo, consulte o seu SLE08 papel .

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