Ok, essa é uma daquelas pequenas coisas que sempre me incomodavam. Normalmente não abrevio identificadores, e a única vez em que uso um identificador curto (por exemplo i
) é para um loop apertado. Então, isso me irrita quando estou trabalhando em C ++ e tenho uma variável que precisa ser nomeada operator
ou class
e eu tenho que contorná-la ou usar uma abreviação, porque ela se destaca. Advertência: isso pode acontecer desproporcionalmente com frequência porque trabalho muito no design de linguagens de programação, onde objetos de domínio podem espelhar conceitos na linguagem host e, sem querer, causar conflitos.
Como você lidaria com isso? Abreviar? ( op
) Erro de ortografia? ( klass
) Algo mais? ( operator_
)
$var
sintaxe do PHP , é isso.Respostas:
Aceite que talvez você precise fazer pequenas alterações em sua convenção de nomenclatura, como adicionar maiúsculas. É melhor aceitar isso o mais rápido possível, para que todo o código subsequente seja consistente.
Considere ser mais específico. Palavras-chave tendem a ser bastante amplo, de modo a diminuir
class
para baixo parademonstrationClass
não só trabalha em torno das questões, mas também aumenta a legibilidade.fonte
Não é algo que eu encontrei, mas se eu entrar em tal situação, tentaria resolvê-lo com as seguintes opções, em ordem.
fonte
const Foo&
não tem nenhum nome completo razoável além defoo
. É melhor darFoo
um nome mais descritivo para você do quefoo
se ele mora em um corpo funcional e serve a um propósito menos especializado.A língua vence; você não pode ser mais esperto que o compilador (ignorando abominações como o PL / 1
IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF END
, mas o PL / 1 não faria com que você fizesse a pergunta em primeiro lugar). Basicamente, você deve seguir as regras do idioma e encontrar uma alternativa para as palavras-chave do idioma para seu próprio uso - ou encontrar um idioma alternativo.Portanto, exceto em circunstâncias muito incomuns, você se adapta ao idioma, e não vice-versa.
fonte
Em vez de abreviar, que tal alongar? Se você está implementando uma construção de classe em uma linguagem Foo, que tal usar FooClass e foo_class? (Módulo quaisquer que sejam suas preferências de embalagem).
fonte
Algumas das abreviações para as quais usei
class
, em ordem de frequência:cls
clss
clazz
theClass
aClass
Se eu souber qual classe a
Class
instância representa, posso incluí-la no nome da variável:stringClass = Class.forName("java.lang.String");
fonte
Em C e C ++, as palavras-chave são todas minúsculas e o idioma diferencia maiúsculas de minúsculas; portanto, pressione a tecla Shift de vez em quando e muitos problemas desaparecem.
Em Modula 2, palavras-chave são todas as letras maiúsculas - mas enquanto seus identificadores têm algumas letras minúsculas a diferença é óbvia e se choca impossível.
Além disso, as convenções de nomenclatura absoluta, até certo ponto, precisam refletir as convenções normais da linguagem que você está usando, então eu certamente escreveria "myClass" em Java, onde provavelmente escreveria "My_Class" em C ++.
Basicamente, você não está apenas escrevendo para o compilador, mas o que as pessoas acham legível depende, em certa medida, do contexto e das expectativas relacionadas.
fonte
class
eClass
prejudicaria a legibilidade do código.Não costumo me deparar com isso, mas quando faço isso tende a não ser um problema, porque eu uso o Delphi e permite que você resolva esse problema acrescentando um & ao identificador. Portanto, "classe" não é um identificador válido, mas "& class" é.
fonte
Eu adicionaria algum tipo de espaço para nome ao nome da variável. Por exemplo, suponha que você tenha o módulo nomeado usuário, eu modificaria o operador do nome da variável para algo como user_operator ou userOperator.
fonte
a
,an
ethe
usado com frequência perturbadora por estudantes iniciantes em CS.aPerson
.a
além de variáveis de laço apertado: /alterar ou ajustar minha convenção de nomenclatura
fonte