2009-11-09 5 views

Répondre

31

Je crois avoir lu quelque part que la meilleure ligne directrice est de capitaliser toujours que la première lettre d'un acronyme (par exemple, si vous avez un TTL utilisateur où TTL est un peu acronyme aléatoire dans votre projet, alors il est préférable d'écrire userTtl).

Ceci est logique, car il résout certains problèmes. Par exemple, disons que vous voulez un compteur d'identifiant utilisateur. La lisibilité de userIDCounter est pire que celle de userIdCounter. Pour un acronyme plus long, cela devient encore pire.

+0

cent pour cent d'accord. Je suis content que vous ayez soulevé cela. +1 –

+2

De plus, cela vous permet d'éviter la question de ce qui est vraiment un acronyme et quel est un mot. Moins de temps passé à penser à des choses comme ça signifie plus de temps passé à faire fonctionner votre code correctement. –

1

Cela dépend principalement de votre convention de nommage avec votre application (s'il y en a). Par exemple, userId est un préféré avec Java convention

6

La première est préférée selon la convention de dénomination Java (1)(2).

+1

Aucun d'entre eux ne parle d'acronymes, malheureusement. –

+0

Votre deuxième référence, Java Language Specification et Java Virtual Machine Specification, sont des collections de documents géants. Ils ressemblent plus à des bibliothèques qu'à des livres. Seule la table des matières comporte plusieurs pages. Si vous déclarez qu'ils soutiennent votre réclamation, alors vous devriez certainement citer d'eux, et dire où exactement vous avez trouvé la citation. Dans le cas contraire, donner ces références est inutile pour le lecteur, car il lui est impossible d'utiliser la référence ou il faudrait au moins énormément de travail pour le faire, ce qui n'en vaut pas la peine. –

+0

@DanielS. le lien était cassé et il était redirigé! –

6

C'est une décision difficile, même Sun est pas sûr de ce qu'il faut faire. Regardez les classes dans JRE,

java.net.URL 
java.security.acl.Acl 
java.net.HttpURLConnection 
java.awt.dnd.DnDConstants 
java.awt.color.ICC_Profile 

Personnellement, je préfère utiliser camel-case pour être cohérent.

+7

'HttpURLConnection' - aaaaaargh. +1 – gustafc

0

En ce qui concerne la convention Java, il ya beaucoup de livres que la première lettre de chaque mot est capatailed et toutes les autres lettres sont en lettres minuscules, donc vous avez des classes comme AcademicStudent, ainsi que l'UserId.

8

Je considère l'élément décrit dans: Effective Java par Joshua Bloch faisant autorité en la matière:

Respecter généralement accepté les conventions de nommage

Les noms de classe et interface doit être constitué d'un ou plusieurs mots , avec la première lettre de chaque mot en majuscules [..] Les abréviations doivent être évitées, sauf pour les acronymes et certaines abréviations courantes comme max et min. [...] un argument fort peut être avancé en faveur de la capitalisation de la première lettre seulement. [...] vous pouvez toujours dire où un mot commence et le mot suivant se termine. Quel nom de classe préférez-vous voir, HTTPURL ou HttpUrl?

Ainsi, il devrait être userId

8

Il est comme ça:

  1. Pour acronymes, majuscule la première lettre. Absolument. Ignorez le fait que certaines méthodes JDK ne le font pas.
  2. Mais "id" est l'un des mots les plus étranges de la langue - une abréviation pour laquelle personne ne sait vraiment exactement ce que c'est court.Certains ont suggéré "document d'identification", mais cela est probablement juste après le fait. "identifier ... quelque chose" concerne le meilleur que nous avons. Quoi qu'il en soit, si vous deviez utiliser userID, il suggère qu'un id ordinaire serait iD, et vous sûr que je ne veux pas le faire, de sorte que le gagnant est:

userId

(comme d'autres ont dit). Donc, il finit par être traité comme un acronyme de toute façon.

+0

J'aime cette réponse plus, vous devez vraiment vous dire d'ignorer les méthodes JDK qui font cela (voir la réponse de ZZ Coder) - pour moi, j'ai vu UUID.randomUUID(), bien, qu'est-ce que je nomme la variable qui revient, penserais UUID? Maintenant que je me dirige vers l'utilisation de Id il semble se démarquer moins, mais je suppose que c'est juste biais. Néanmoins je vais me conformer! –

Questions connexes