O que é uma boa convenção de nomenclatura para as variáveis ??de função de grande alcance?

StackOverflow https://stackoverflow.com/questions/151594

  •  02-07-2019
  •  | 
  •  

Pergunta

Você pode ter diferentes convenções de nomenclatura para os membros da classe, objetos estáticos, objetos globais e estruturas. Alguns dos exemplos deles são como abaixo.

_member
m_member

ou em caso de Java, o uso de this.member.

Mas há alguma boa técnica ou convenção de nomenclatura para o escopo variáveis ??de função que transmite quando uma única variável tem escopo de função completa ou um escopo vida útil curta?

void MyFunction()
{
  int functionScopeVariable;

  if(true)
  {
    //no need for function variable scope naming convention
  }
}
Foi útil?

Solução

Nós tendemos a usar um prefixo l_ em nossas funções para "local". E, isso é funcionou muito bem.

Outras dicas

Eu realmente incentivar delegando essa tarefa para o IDE / editor que você usa.

Não, eu não estou realmente falando de variáveis ??de nomenclatura, que ainda é o melhor feito por um ser humano. Mas a tarefa subjacente de tais estratégias de nomeação é mostrar-lhe que tipo de variável qualquer nome representa.

Praticamente todos os worth IDE seu sal pode definir diferentes estilos (cores, fontes, tipos de fonte, ...) para diferentes tipos de variáveis ??(membro de instância, membro estático, argumento, variável local, ...) para deixar o IDE dizer-lhe que tipo de variável é realmente liberta-o de ter que digitar os (caso contrário inútil) pré ou sufixos de cada vez.

Assim, a minha sugestão: usar nomes significativos sem qualquer prefixo ou sufixo

.

Um método é seguir a orientação que quanto maior o escopo da variável, maior será o nome. Desta forma, as variáveis ??globais obter nomes longo descritivos, enquanto as coisas limitado no escopo como variável índice de loop pode ser tão pequeno como letras individuais.

Eu uso prefixos ou convenções de nomenclatura especiais sobre variáveis ??globais, estáticos e membros então eu não tenho que usar prefixos em locals. Eu prefiro ter a opção de usar nomes de variáveis ??locais curtas, especialmente para as variáveis ??de loop.

Há um argumento que você não deve ter 'funções de grande alcance' por isso não deve ser um problema com a nomeação -. Usar apenas a 'função âmbito pequeno' convenções de nomenclatura de variáveis ??

A orientação de MSFT e outros guias de estilo para campos de instância privadas é (notação caso camelo prefixado com "_memberName) _". Esta é também a convenção usada no código fonte de muitos tutoriais recentes da Microsoft.

Eu usá-lo porque é mais curto, não Húngaro e R # suportes-lo como a regra padrão para campos de instância privadas.

Eu também gosto dele porque ele espécie de obscurece os campos privados de Intellisense, como deveria, já que você deve preferir para acessar seus membros públicos em primeiro lugar. Se eu quiser acessar a propriedade de nome e eu começar a digitar "Na" a primeira sugestão é o Pascal-encaixotado instância pública propriedade Name. Nos raros casos em que quero acessar o campo privado, directamente Isso me forças para tomar uma decisão consciente para começar a digitar "_", então eu obter a lista completa das minhas áreas privadas no pop-up Intellisense.

Também já vi orientação que diz que deve ser _MemberName se ele é o campo de apoio para uma propriedade pública denominada MemberName (notação caso Pascal prefixado com "_") Eu, pessoalmente, não gosto disso porque eu acho que a capital M é redundante, acrescenta teclas digitadas desnecessários e não acrescenta qualquer informação adicional.

É realmente tudo se resume ao que as diretrizes de estilo para a linguagem de sugerir se houver algum.

Eu acho que tudo é muito bem contanto que ele transmite o significado quanto à sua utilização.

Eu prefiro mantê-lo simples, eu uso:

 m_varname - Class member variables
 g_varname - Global variables

Eu uso o mesmo uso I convenção para membros da classe. O IDE deve ter o cuidado de encontrar o seu declaração. Se uma função é que grande e confuso que se torne um prblem, há uma questão gretaer precisa ser endereços.

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