Eu sempre luto na abreviação de nomes de variáveis. Existe algum padrão para abreviar nomes de variáveis?
programming-languages
c#
variables
Huzaifa
fonte
fonte
Respostas:
O padrão que eu uso é não abreviar nomes de variáveis, a menos que a abreviação seja mais legível que a versão completa (
i
para índices de iteração, por exemplo). Nomeamos as coisas para que possamos nos comunicar. Abreviar nomes de variáveis geralmente diminui sua capacidade de comunicação.fonte
Como não sou programador em C #, não posso dar muitos conselhos sobre convenções em C #. Mas tenho algumas reflexões sobre abreviações.
À medida que envelheci e tive mais experiência, descobri-me cada vez menos. Admito que não era um datilógrafo muito bom quando comecei a programar. Eu fiquei melhor nisso desde então;). Abreviarei livremente as variáveis com escopo muito limitado, para que eu possa ver toda a sua vida útil em uma tela. Mas, além disso, prefiro não fazê-lo - nunca abrevio para salvar a digitação.
Ainda tento manter minhas linhas abaixo de 80 caracteres. Não tenho certeza se isso faz sentido nos dias de hoje, mas é um hábito antigo. Então, vou abreviar se um nome de variável for muito longo. Mas antes de fazer isso, tentarei encontrar um nome mais sucinto que seja igualmente claro - todo o resto igual menor é melhor (falando da forma expandida).
Onde você abrevia, é mais importante, eu acho, que você sempre abrevie da mesma maneira em uma determinada base de código e nas bases de código relacionadas. Provavelmente, seu primeiro instinto é o ideal, pois será mais fácil lembrar, mas pode valer a pena conferir com outras pessoas no mesmo projeto. Hoje em dia, trabalho principalmente com outro programador, em um escritório aberto, cheio de não programadores. Eles acham que somos loucos, porque geralmente temos discussões detalhadas sobre coisas como abreviar consistentemente nomes de variáveis relacionadas ou ordenar parâmetros de forma consistente em chamadas de função etc. Mas nomear importa, mesmo para duas pessoas. Em equipes maiores, isso se torna ainda mais importante. Uma coisa sobre a qual sou bastante religioso é consertar inconsistências em coisas assim assim que as vejo.
EDIT: algumas abreviações são boas, eu acho. No meu trabalho atual, grande parte do código que escrevo tem a ver com a avaliação de splines e outras funções paramétricas, em determinados valores de parâmetros. Nossa base de código é de fato inconsistente nesse sentido. Eu sei que você é usado em alguns lugares e param (uma abreviação em si) é usado em outros. U é uma abreviação geralmente entendida para parâmetro neste domínio, então acho que devemos passar por isso e torná-lo consistente. Eu ficaria bem com qualquer um de u, param ou parâmetro. Nós os usamos tanto que é improvável que haja qualquer confusão, desde que usemos apenas um . Mas eu preferiria você.
É pior do que isso - na verdade, temos vários tipos de parâmetros. E temos mais de um nome para alguns deles.
A razão pela qual isso ficou inconsistente é o livro didático. Descobrimos que precisávamos mapear entre seis espaços de parâmetros - os motivos são complicados, mas basicamente precisávamos ter parâmetros que correspondessem ao espaço de parâmetros, espaço de parâmetros normalizado, espaço de comprimento de arco, espaço de comprimento de arco normalizado, espaço de comprimento de arco normalizado, espaço por partes e normalizado espaço por partes. Não percebemos, a princípio, que teríamos que mapear entre todos esses espaços. E éramos inconsistentes na maneira como nomeamos parâmetros que descrevem pontos nesses espaços.
Às vezes, isso acontece: seu aplicativo cresce e você faz algumas coisas inconsistentes enquanto o cresce. O importante é que você reconheça que ficou bagunçado e entre e conserte antes que a bagunça infecte todo o resto e você acabe com uma pilha de entulho.
fonte
double createBox(string tb, int cir, double pmj)
, apenas um pensamento a acrescentarO vry rsn não dbbrvt st mk sr th cd s rdbl nd mntnbl por exemplo
Observe que duas das quatro palavras são curtas (conta-> acc e Saldo-> Bal), mas as outras duas não. Qual regra é aplicada aqui - abrace as 2 primeiras palavras, não são "palavras com mais de 6 letras", porque 2 7 letras eram e uma não era.
Então, poderia / deveria ser 'accBalInSav', yuk yuk yuk .......
Minha experiência, à medida que os programadores ficam mais velhos e mais sábios, abrevia cada vez menos. Na minha idade, provavelmente estamos tentando compensar os pecados de nossa juventude ...
Lembre-se de que o código é escrito uma vez (ok, muitos mais do que uma vez) e lido milhares de vezes.
fonte
accBalInSaving
, algo está errado no design - a variável carrega muitas informações de contexto que realmente deveriam estar implícitas; se fosse uma propriedade daAccount
classe, por exemplo, não haveria necessidade de colocar "conta" em seu nome. E quando for esse o caso, abreviar é apenas um analgésico que ajuda a varrer esse problema para debaixo do tapete.Há uma pergunta semelhante sobre nomes de caracteres únicos, Usando caracteres únicos para nomes de variáveis em loops / exceções .
Minha resposta então, como agora, é mantê-los curtos onde o escopo é pequeno. Por exemplo, um parâmetro de uma função curta é mais legível se for curto e ocupa menos espaço. Uma variável de toda a classe deve ser muito descritiva.
O livro clássico de Steve McConnell , Code Complete, é ótimo para coisas como essa.
fonte
Não acredito que haja regras oficiais ou comuns para abreviações. Geralmente, um sistema de abreviações é desenvolvido por cada indivíduo e dentro de cada projeto individual. Pode haver certas regras para a política de estilo de código-fonte da empresa, mas isso também varia de acordo com a empresa.
Em uma nota lateral, por que abreviar? Isso resultará em apenas você entender o significado das abreviações. Use nomes completos e descritivos para variáveis. Isso levará ao código de auto-documentação.
fonte
Em caso de dúvida, soletre.
O objetivo de um nome de variável é para que o significado do código seja mais claro. A menos que a abreviação seja muito óbvia, você também pode usar a menor possível. Nomes de variáveis e nomes de funções são normalmente os únicos bits da linguagem humana no código e, portanto, agem como 'marcos' para o olho humano encontrar partes relevantes do código (ou, em uma grande base de código, ferramentas como
grep
ouack
) e também como pistas. para compreensão.Quando a próxima pessoa ler seu código, ela agradecerá. Essa pessoa pode muito bem ser você daqui a um ano. Eu tenho muito código que lamento abreviar, então hoje em dia eu tento evitá-lo.
Não há problema em abreviar quando ...
... Quando o formulário abreviado é usado no inglês falado ou escrito por mais do que apenas as pessoas que trabalham no seu projeto (muitos dicionários fornecem esse tipo de informação ao lado do termo que definem).
... Quando a abreviação se refere inequivocamente a um único conceito e seria instantaneamente reconhecida por alguém que não está familiarizado com a base de código. Mesmo assim, um comentário ou uma documentação ajuda.
... Quando o nome da variável existir apenas em um único escopo ou função pequena e você não esperar que o usuário obtenha significado do nome, use um único caractere. Em tais casos,
i
ej
são comuns.... Ao escrever uma interface (ou seja, não um nome de variável, portanto fora do escopo da pergunta, mencionado apenas porque nomes de variáveis e interfaces que os definem costumam usar o mesmo vocabulário), nesse caso outras regras podem ser aplicadas, por exemplo:
... Quando sua base de código precisar se referir ao mesmo conceito várias vezes no mesmo projeto e quando a abreviação puder ser definida em um guia de estilo para esse projeto e quando for inequívoco. Se o seu projeto não é grande o suficiente para um guia de estilo, não é grande o suficiente para valer a pena.
Não vou fornecer um exemplo de código para este porque, por definição, ele funciona apenas em um projeto grande, mas veja também o próximo item:
... Ao trabalhar em um projeto estabelecido que teve vários colaboradores e um guia de estilo que exige abreviações. Nesse caso, abrevie apenas de acordo com o guia de estilo, mas procure problemas e esteja preparado para fazer anotações com comentários (como "esta é uma lista de nomes de atributos como seqüências de caracteres").
Um pensamento final: se você ainda possui nomes de variáveis inaceitavelmente longos (por exemplo, compostos por quatro ou mais unidades semânticas como totalAfterTaxInLocalCurrency), pode ser um sintoma de que seu código está tentando fazer muito em um único escopo e que suas funções precisam ser refatoradas out ou suas variáveis podem ser mais logicamente gerenciadas em um único objeto.
fonte
A razão pela qual abreviamos variáveis é parar de digitar variáveis grandes, mas, ao mesmo tempo, a variável abreviada deve ser explícita o suficiente para que você possa entender o que ela contém, em vez de voltar para onde foi declarada ou instanciada primeiro. Então, por exemplo:
int accountBalanceInSavings
-> pode ser abreviado para
int accBalInSaving
---> mas abreviando-o para
int accBal
Definitivamente, não seria uma boa opção, pois não seria possível entender o que a variável contém apenas olhando para ela.
fonte
accBalInSaving
comaccumulated Bal In Savings
Você não deve abreviar coisas para abreviá-las, mas para sua conveniência / outras pessoas, mas se desejar, uma regra geral que eu tenho para abreviação é se uma palavra tiver mais de quatro ou cinco letras, Vou abreviá-lo para as três primeiras letras significativas dessa palavra, por exemplo:
pode ser abreviado para
ou se você quiser o mais curto possível,
fonte