D'accord, c'est une de ces petites choses qui m'a toujours dérangé. Je n'abrège généralement pas les identifiants, et la seule fois où j'utilise un identifiant court (par exemple, i
) est pour une boucle serrée. Donc ça m'énerve quand je travaille en C ++ et j'ai une variable qui doit être nommée operator
ou class
et je dois la contourner ou utiliser une abréviation, car elle finit par ressortir. Attention: cela peut m'arriver de manière disproportionnée, car je travaille beaucoup dans la conception de langages de programmation, où les objets de domaine peuvent refléter des concepts dans le langage hôte et provoquer par inadvertance des conflits.
Comment gérez-vous cela? Abréger? ( op
) Mal orthographié? ( klass
) Autre chose? ( operator_
)
$var
syntaxe de PHP , c'est bien celle-ci.Réponses:
Acceptez que vous deviez apporter des modifications mineures à votre convention de dénomination, comme l'ajout de majuscules. Il est préférable d'accepter cela dès que possible afin que tout le code suivant soit cohérent.
Pensez à être plus précis. Mots - clés ont tendance à être assez large, donc réduire
class
jusqu'àdemonstrationClass
travaille non seulement autour des questions , mais augmente également la lisibilité.la source
Ce n'est pas quelque chose que j'ai rencontré, mais si je me retrouve dans une telle situation, j'essaierais de le résoudre avec les options suivantes, dans l'ordre.
la source
const Foo&
n'a pas de nom complet raisonnable autre quefoo
. Certes, il pourrait être préférable de vous donnerFoo
un nom plus descriptif quefoo
s'il vit dans un corps fonctionnel et sert un objectif moins spécialisé.La langue gagne; vous ne pouvez pas déjouer le compilateur (en ignorant les abominations telles que PL / 1
IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF END
, mais alors PL / 1 ne vous amènerait pas à poser la question en premier lieu). Fondamentalement, vous devez suivre les règles de la langue et vous devez trouver une alternative aux mots clés de la langue pour votre propre usage - ou trouver une autre langue.Donc, sauf dans des circonstances très inhabituelles, vous vous adaptez à la langue, et non l'inverse.
la source
Au lieu d'abréger, pourquoi ne pas allonger? Si vous implémentez une construction de classe dans un langage Foo, que diriez-vous d'utiliser FooClass et foo_class? (Modulo quelles que soient vos préférences de boîtier).
la source
Certaines des abréviations que j'ai utilisées pour
class
, par ordre de fréquence:cls
clss
clazz
theClass
aClass
Si je sais quelle classe l'
Class
instance représente, je pourrais l'inclure dans le nom de la variable:stringClass = Class.forName("java.lang.String");
la source
En C et C ++, les mots clés sont tous en minuscules et la langue est sensible à la casse, donc appuyez de temps en temps sur la touche Maj et de nombreux problèmes disparaissent.
Dans Modula 2, les mots clés sont tous en majuscules - mais tant que vos identifiants ont des lettres minuscules, la différence est évidente et les conflits sont impossibles.
De plus, les conventions de nommage absolues doivent dans une certaine mesure refléter les conventions normales du langage que vous utilisez, donc j'écrirais certainement "maClasse" en Java où j'écrirais plus probablement "Ma_Classe" en C ++.
Fondamentalement, vous n'écrivez pas uniquement pour le compilateur, mais ce que les gens trouvent lisible dépend dans une certaine mesure du contexte et des attentes associées.
la source
class
etClass
nuirait à la lisibilité du code.Je ne rencontre pas souvent cela, mais quand je le fais, cela a tendance à être un non-problème parce que j'utilise Delphi et cela vous permet de contourner ce problème en ajoutant un & à l'identifiant. Ainsi, "classe" n'est pas un identifiant valide, mais "& classe" l'est.
la source
J'ajouterais une sorte d'espacement de noms au nom de variable. Par exemple, supposons que vous ayez un module nommé utilisateur, je modifierais l'opérateur de nom de variable pour qu'il ressemble à user_operator ou userOperator.
la source
a
,an
etthe
utilisé avec une fréquence inquiétante par les élèves débutants CS.aPerson
.a
dehors des variables de boucle étroite: /changer ou ajuster ma convention de dénomination
la source