Quelle est la convention de nommage appropriée pour une propriété 'ID': ID ou Id?

Question assez simple: quand j'ai un objet persistant, il a généralement une propriété appelée ID (pour les classes abstraites).

Donc .. la convention de nommage est-elle ID Ou Id?

Par exemple.

public int ID { get; set; }

Ou

public int Id { get; set; }

Cheers:)

PS. C'est pour. NET btw. FxCop conformat serait un bonus.

23
demandé sur Blair Conrad 2008-11-05 13:50:36

9 réponses

Je vais habituellement avec identifiant . Si je veux vraiment le garder court (dans le cadre d'un identifiant, par exemple), j'utilise l'Id, sauf si c'est un paramètre ou d'un membre privé.

Les directives de nommage . NET Framework disent ceci:

Un acronyme est un mot qui est formé à partir des lettres des mots dans un terme ou une expression. Par exemple, HTML est un acronyme pour Hypertext Markup Language. Vous ne devez inclure les acronymes dans les identificateurs que lorsqu'ils sont largement connus et bien connus Compris. Les acronymes diffèrent des abréviations en ce sens qu'une abréviation raccourcit un seul mot. Par exemple, ID est une abréviation pour identifier. En général, les noms des bibliothèques ne doivent pas utiliser d'abréviations.

Les deux abréviations qui peuvent être utilisées dans les identifiants sont ID et OK. Dans les identifiants Pascal-cased, ils devraient apparaître comme Id, et Ok. Si le premier mot dans un camelcase identificateur, ils devraient apparaître comme id et ok, respectivement.

28
répondu OregonGhost 2008-11-05 11:01:22

Quoi que vous aimiez qu'il soit, juste être cohérent. ID N'est pas un mot, c'est une abréviation d'identité. Comment écrire des abréviations est quelque chose que les gens discutent depuis longtemps. Par exemple, est-ce

getResourceURL

Ou

getResourceUrl

En fait, les deux peuvent être trouvés dans différents frameworks. Un autre abbr populaire. avec un problème similaire est UTF8.

Il est juste important d'être cohérent, car sinon les gens doivent toujours rechercher la capitalisation correcte pour chaque méthode, si chaque la méthode qu'il gère d'une manière différente.

J'ai ma propre convention pour ça. Si l'abr. est à la fin du nom, tout est en majuscule, si c'est ailleurs, il suit les règles de notation de chameau. Par exemple

getResourceURL
urlOfResource
compareUrlToString

Pourquoi? J'aime abbr. pour être en majuscule. La plupart des gens s'attendent à ce que URL ou UTF soit capitalisé. Toutefois, si, au milieu d'un nom, il détruit l'avantage de chameau notation. L'avantage de la notation camel est que vous voyez où un nouveau mot commence par la majuscule. Si comparer:

compareURLToString
compareUrlToString

Dans le premier cas, je ne vois pas immédiatement l'URL est un mot et À la prochaine. Le T peut faire partie de L'URL (URLT) et être un abbr différent. donc je vais utiliser la deuxième forme. Si c'est à la fin cependant, il ne jouera pas de rôle, aucun autre mot ne suit, donc je préfère la forme en majuscule. Je m'en tiens à cette convention tout au long de mon code.

8
répondu Mecki 2008-11-05 11:00:28

Les directives disent "Id".

Heureusement, les gars de. Net ont eu la gentillesse de nous donner des "directives de nommage" et non des "lois de nommage";), donc fondamentalement, si vous sentez fortement que la violation d'une règle de directive ajoute plus de valeur que de la suivre, alors par tous les moyens, personne ne vous en rendra compte s'ils comprennent vos raisons (comme]}

Dans ma boutique, nous utilisons ' ID 'même si les directives disent 'Id', mais on ne, se sent vraiment coupable à ce sujet.

8
répondu Pop Catalin 2014-01-19 20:51:51

Comme d'autres l'ont souligné, Id est correct selon les conventions. net, mais d'une manière ou d'une autre, il ne se sent pas bien, tant de gens utilisent ID (et vivent toujours).

Je ne sais pas quel sera le contenu de votre champ (nombres, chaînes, GUID), mais si vous voulez ignorer le problème, vous pouvez simplement utiliser une autre convention. Net pour les identificateurs d'objet: Name

4
répondu Filini 2008-11-05 11:23:07

Nous utilisons ID en interne, car Id me semble que la psychologie parle, mais FxCop se plaint, car ID n'est pas un acronyme, c'est une abréviation (pour Identity/Identifier). Selon la règle FxCop, seuls les acronymes de deux caractères sont autorisés à être en majuscules. Tout le reste devrait être un cas approprié.

Nous mettons un attribut SuppressMessage sur la propriété ID, et tout le monde est heureux.

2
répondu David Wengier 2008-11-05 10:58:12

" ID " est l'une des abréviations codées en dur dans les règles de nommage FxCop qui sont toujours considérées comme mal orthographiées même si elles sont des parties d'autres mots. La seule façon que j'ai trouvée pour le remplacer est d'ajouter " ID " aux Acronymes as ():

<Dictionary>
<Acronyms>
   <CasingExceptions>
        <Acronym>ID</Acronym>
  </CasingExceptions>
</Acronyms>
</Dictionary>

Cela a fonctionné avec FxCop 1.36. PS en général, je pense que "Id" est une meilleure alternative mais parfois il est impossible de changer un nom s'il est généré à partir de fichiers XML (ou de services web) que nous ne contrôlons pas

2
répondu Hans Kesting 2011-11-11 14:22:42

Je préfère ID, également en combinaison avec d'autres mots (par exemple CustomerID), mais à proprement parler c'est contre les conventions de nommage régulières.

1
répondu Treb 2008-11-05 10:57:07

Nous voyons ici des choses comme " Id " ou d'autres acronymes comme un mot, et "Id" est le plus facile parce que dans le secteur bancaire, nous obtenons beaucoup de combinaisons de lettres étranges. Nous le traitons donc comme un mot, seulement avec la première lettre en majuscule, et c'est ainsi que nous avons fini par être définis dans notre document de conventions de codage interne.

Mais l'essentiel est: choisissez quelle convention est la plus confortable pour l'équipe de développeurs et d'autres personnes qui regardent le code source et s'en tiennent à lui.

0
répondu t3mujin 2008-11-05 11:12:50
0
répondu 2009-07-15 15:59:30