Pergunta

Como posso me treinar para dar o melhor nomes de variável e função (qualquer nome definido pelo usuário em um programa).

Foi útil?

Solução

Prática.

Sempre pensando sobre isso, sempre que você escrever ou ler o código, incluindo o código de outras pessoas.Tente descobrir o que você faria de forma diferente no seu código e falar com eles sobre isso, quando possível (mas não de harpa, que seria um incômodo).Peça-lhes perguntas sobre o porquê de terem escolhido um nome determinado.

Veja como o código lê sem comentários.Se você precisar de comentar sobre o propósito básico de algo que você nomeou, considere se ele poderia ter um nome melhor.

O mais importante de tudo é mental ativa participação:prática.

Outras dicas

O pensamento de nomes parece ser algo que algumas pessoas são extremamente ruim, e eu não tenho certeza do que a cura.De volta quando eu era um instrutor de trabalho em formação comercial, frequentemente eu a ver situações como esta:

Me:OK, agora você precisa criar uma variável de número inteiro para conter o valor retornado por getchar().

[Estagiários de começar a escrever, e eu andar em volta da sala de treinamento.A maioria está indo muito bem, mas um está sentado como um veado congelados os faróis]

Me:Qual é o problema?

Ele:Eu não posso pensar em um nome para a variável!

Então, vou dar-lhes um nome para ele, mas eu tenho um sentimento de que as pessoas com este problema não está indo para ir longe na programação.Ou, talvez, o problema é que eles vão muito longe...

Esta é uma questão subjetiva.

Eu me esforço para fazer o meu código de alinhar com as bibliotecas (ou, pelo menos, o padrão) para que o código tenha uma uniformidade.Eu sugiro:Veja como a biblioteca padrão de funções são nomeadas.Procurar por padrões.Saiba o que as diferentes convenções de nomenclatura de existir.Ver qual deles faz mais sentido.E. g:a maioria código Java usa realmente grandes nomes de identificadores, a caixa de Camelo, etc.C usa concisa nomes curtos.Não é, então, a notação húngara, que era a pena o esforço quando os editores não eram inteligentes o suficiente para fornecer a você informações de tipo.Hoje em dia, você provavelmente não precisa dele.

Joel Spolsky escreveu um artigo útil sobre a notação húngara alguns anos atrás.Seu pensamento chave é esta:

Vamos tentar chegar com uma codificação a convenção que irá garantir que, se você jamais cometer este erro, o código de vai apenas olhar errado.Se o código errado, pelo menos, parece errado, então ele tem um combate a chance de ser pego por alguém que trabalha no código ou revisão de código.

Ele vai mostrar como a atribuição de nomes de variáveis em um rigoroso moda pode melhorar o nosso código.O ponto é, que, para evitar bugs tem um mais rápido e mais óbvio ROI do que tornar nosso código mais "sustentável".

Leia alguns códigos e imitá-la.Essa é a maneira universal de aprender qualquer coisa;basta substituir "ler" e "código" com palavras apropriadas.

Uma boa maneira de encontrar nomes de expressão é iniciar com uma descrição textual que o software realmente faz.Bons candidatos para a função (método) nomes são verbos, por classes de substantivos.Se você faz primeiro projeto, um método é análise textual.

  • (Mesmo se você é apenas um time de 1) chegar a um padrão de codificação com os seus colegas, para que todos usam as mesmas convenções de nomenclatura.(e.g.É comum o uso de propriedades para os valores que são devolvidos rapidamente, mas uma xxx obter ou CalculateXXX método para valores que irá levar tempo para calcular.Essa convenção permite que o chamador uma idéia muito melhor sobre a necessidade de armazenar em cache os resultados, etc.).Tente usar os mesmos nomes para conceitos equivalentes (por exemplo,Não misture Matriz.A contagem e a Lista.Comprimento como a Microsoft fez no .net!)

  • Tente ler o código, como se alguém o escreveu (i.e.esqueça tudo que você conhece e lê-lo).Isso faz sentido?Não diga tudo o que eles precisam saber para entender?(Provavelmente não, porque todos nós se esqueça de descrever as coisas que "sabe" ou que é "óbvio".Voltar e esclarecer a nomenclatura e a documentação para que alguém pode pegar seu arquivo de código e facilmente compreendê-lo)

  • Manter nomes curtos, mas descritivo.Não há nenhum ponto de escrever uma frase completa, mas com a auto-realização, na maioria dos IDEs, também há pouco ponto em abreviar nada, a menos que é uma abreviatura padrão.

  • Não perca caracteres dizer a alguém que esta cadeia de caracteres é uma seqüência de caracteres (comum a interpretação da notação húngara).Use nomes que descrevem o que algo não, e como ele é usado.exemplo:Eu uso prefixos para indicar o uso de (m=membro, i=iterador/index, p=ponteiro, v=voláteis, s=estática, etc.).Esta é uma informação importante ao acessar a variável então é uma adição útil para o nome.Ele também permite que você copie uma linha de código em um e-mail e o receptor possa entender exatamente o que todas as variáveis destinam-se a fazer a diferença no uso entre um estática volátil e um parâmetro normalmente é muito importante.

  • Descrever o conteúdo de uma variável ou a finalidade de um método em seu nome, evitando termos técnicos, a menos que você sabe que todos os leitores do seu código vai saber o que esses termos significam.Use a descrição mais simples que você pode pensar - complexo de palavras e termos técnicos de som inteligente e impressionante, mas são muito mais abertas a interpretações dúbias (e.g.em cima da minha cabeça:De agrupamento ou Ordenação, Serialise ou Salvar - apesar de esses são bem conhecidas palavras em programação e por isso não são muito bons casos).

  • Evitar vaga e quase sem sentido, termos como "valor", "tipo".Isto é especialmente verdadeiro da base de dados de propriedades de classe, porque você acaba com um "Tipo" em uma classe derivada e você não tem idéia de que tipo se tipo ele é.Use "JoystickType" ou "VehicleType" e o significado é imediatamente muito mais clara.

  • Se você usar um valor com unidades de dizer às pessoas o que eles estão no nome (angleDegrees em vez de ângulo).Este simples truque vai deixar a sua nave espacial esmagamento em Marte.

  • Para C#, C++, C no Visual Studio, tente usar AtomineerUtils adicionar comentários de documentação para métodos, classes, etc.Esta ferramenta deriva documentação automática a partir de seus nomes, de modo a melhor os vossos nomes, o melhor a documentação e o menos esforço, você precisa colocar no acabamento a documentação fora.

Leia o Código de "Completa" do livro, mais especificamente o Capítulo 11 sobre a Nomeação.Esta é a lista de verificação (a partir de aqui, livre de registo necessário):

Geral De Atribuição De Nomes Considerações

O nome totalmente e descrever com precisão o que a variável representa?O nome se referir ao problema do mundo real, em vez de para a linguagem de programação solução?É o nome do longa o suficiente para que você não precise de quebra-cabeça fora?São calculados valor de qualificadores, se houver, no final do nome?O nome Contagem de uso ou de Índice em vez de Num?

Nomenclatura De Tipos Específicos De Dados

São loop nomes de índice significativo (algo diferente de i, j ou k se o ciclo é mais do que uma ou duas linhas longas ou aninhado)?Ter todos os "temporários" variáveis foi renomeado para algo mais significativo?São variáveis booleanas chamado, de modo que seus significados quando elas são Verdadeiras, são claros?Fazer enumeradas-escreva os nomes incluem um prefixo ou sufixo que indica a categoria-por exemplo, Color_ para Color_Red, Color_Green, Color_Blue, e assim por diante?São chamados de constantes nomeadas para o resumo de entidades que eles representam, ao invés de incluir os números que eles se referem?

Convenções De Nomenclatura

A convenção de distinguir entre o local, o classe e dados globais?A convenção de distinguir entre nomes de tipo, chamado de constantes, tipos enumerados, e variáveis?A convenção de identificar somente de entrada parâmetros de rotinas em linguagens que não aplicá-las?É a convenção de tão compatível quanto possível com o padrão de convenções para a língua?São nomes formatados para facilitar a leitura?

Nomes Curtos

O código de utilizar nomes longos (a menos que seja necessário o uso de curtas)?O código se evitar as abreviaturas que salvar apenas um personagem?São todas as palavras abreviadas de forma consistente?São os nomes pronunciável?São nomes que poderiam ser mal pronunciadas evitado?São nomes curtos documentado em tabelas de tradução?

Nomenclatura Comum Problemas:Você Evitados...

...nomes que são enganosas?...nomes com significados semelhantes?...nomes que são diferentes apenas por um ou dois personagens?...nomes que soam similares?...nomes que usam algarismos romanos?...nomes intencionalmente erros ortográficos para torná-los mais curto?...nomes que são comumente erros ortográficos em inglês?...nomes que estão em conflito com a biblioteca padrão-nomes de rotina ou com a variável predefinida nomes?...totalmente arbitrário nomes?...difícil de ler caracteres?

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