web-dev-qa-db-fra.com

La variable doit-elle être nommée Id ou ID?

C'est un peu pédant, mais j'ai vu certaines personnes utiliser Id comme dans:

private int userId;
public int getUserId();

et d'autres utilisent:

private int userID;
public int getUserID();

L'un d'eux est-il un meilleur nom que l'autre? Pourquoi? J'ai vu cela se faire de manière très incohérente dans les grands projets. Si je devais établir une norme qui serait familière à la plupart des gens? Quelle est la norme conventionnelle?

134
Adam

La règle la plus importante à suivre dans ces cas est la cohérence: faites comme tout le monde.

Par exemple, regardez les API XML de votre langue pour voir comment elles le font.

Java nomme des classes comme SAXParser et DOMException , .NET nomme des classes comme XmlDocument .

Sur cette base, je dirais "ID" en Java, "Id" en C #.

Cependant, j'ai vu que Java EE 6 a une annotation nommée @Id (voir documentation ), il semble donc Java considère que "Id" n'est qu'un mot normal.

58
luiscubal

La cohérence est roi; choisissez l'un ou l'autre, mais faites-le systématiquement partout.

Cela dit, je préfère la première variante, car elle ne viole pas camelCase (cela signifie que vous avez deux règles de style à retenir, pas une seule).

Deux majuscules sont parfois utilisées à cause de this , mais un ID n'est en réalité qu'une forme d'identification de l'ID.

110
Robert Harvey

TL; DR: Dans le contexte des bibliothèques de classes .NET, Microsoft vous recommande d'utiliser l'ID. Ceci est légèrement contre-intuitif, car il s'agit d'un rare exemple d'abréviation autorisée/recommandée (les abréviations sont généralement mal vues).

Si nous parlons de conventions de bibliothèque de classes C # ou .NET, Microsoft a assez bien défini directives de dénomination disponibles. Ils sont bien pensés, avec de nombreuses explications sur une variété de problèmes - en fait, chaque développeur devrait prendre un certain temps pour lire l'intégralité de la section Design Guidelines .

En ce qui concerne acronymes, la règle de base est la suivante: pour les acronymes à deux lettres, vous avez tendance à les garder en majuscules (où le cas Pascal est applicable), par exemple IOStream peut être le nom d'une classe. Pour un acronyme plus long, vous minuscules le reste de l'acronyme, par exemple XmlDocument ou HtmlParser. Il s'agit en fait d'une règle essentiellement non ambiguë (il n'y a pas de confusion quant à la fin d'un mot et au début du suivant, sauf si vous enchaînez des acronymes à deux lettres), et vous vous y habituez très rapidement.

Alors, est-ce ID, ou Id? Eh bien, selon Microsoft, ce n'est peut-être pas ce que vous pensez:

Les acronymes diffèrent des abréviations en ce qu'une abréviation raccourcit un seul mot. Par exemple, [~ # ~] id [~ # ~] est une abréviation pour l'identifiant . En général, les noms de bibliothèque ne doivent pas utiliser d'abréviations.

Les deux abréviations qui peuvent être utilisées dans les identificateurs sont ID et OK. Dans les identifiants en Pascal, ils doivent apparaître comme Id et Ok. S'ils sont utilisés comme premier mot dans un identifiant en forme de chameau, ils doivent apparaître respectivement comme id et ok.

Pour l'anecdote, je ne suis pas vraiment sûr quand cette distinction a commencé à apparaître dans les directives, mais il y a quelques années (vers 3.0/3.5), la tendance générale de nommage dans les bibliothèques de classes est passée de l'ID à l'ID.

76
Daniel B

J'ai lu une très bonne explication dans le document de certaines conventions de codage. CamelCase doit toujours être utilisé pour les acronymes et les abréviations, car il est plus facile de distinguer les limites de Word (comparer XmlIdWriter à XMLIDWriter).

15
gilden

Comme nous pouvons le voir dans la fonction par défaut de JavaScript, getElementById (); L'ID est écrit dans l'affaire Camel ...

Utilisez 'id' si vous utilisez avec un trait de soulignement. Exemple: user_id

Utilisez 'Id' si vous nommez un var sans aucun soulignement pour différencier les différents mots. Exemple: serId

S'il s'agit d'une seule variable Word, elle doit être entièrement en minuscules, si plusieurs Word varient, utilisez des minuscules Camel. Exemple: thisIsExample

Mais je ne recommanderais pas fortement 'ID' tout en majuscules car nous utilisons généralement toutes les majuscules pour définir les CONSTANTES.

2
Sukrit Gupta

Tout d'abord, évitez l'abréviation.

Deuxièmement, si l'abréviation est super bien connue, je recommande d'utiliser le boîtier camel.

C'est parce que vous n'avez pas besoin de considérer la signification de cela. il suffit de le traiter comme un mot normal

1
Sungguk Lim