web-dev-qa-db-fra.com

Comment écrire un étui à chameau pour des mots comme "numéro de téléphone", "moto", "longueur d'onde", etc.

J'ai du mal à comprendre comment appliquer syntaxe camelCase à certains de mes noms de variables.

Par exemple, comment dois-je écrire correctement un mot comme "numéro de téléphone" dans une affaire de chameau? Est-ce phoneNumber ou phonenumber? De même avec "nom d'utilisateur", est-ce username ou userName?

Je pense que cela ne semble pas correct avec un étui à chameau comme motorCycle, passWord, sunDay, setUp ou waveLength car ce ne sont que un mot chacun. Je pense que cela pourrait être la raison pour laquelle on l'appelle hashMap mais aussi hashtable dans le cas du chameau sans la majuscule dans le dernier cas car la table de hachage est un mot tandis que la carte de hachage est deux mots.

Mais si la moto a une couleur, serait-ce motorcycleColor puisqu'un mot est concaténé? Est-ce correct ou doit-il être phoneNUmber, waveLength, sunBlock et même sunDay pour le dimanche de la semaine?

Par exemple, pourquoi la méthode s'appelle getISOCountries alors qu'elle dit HttpHeaders par exemple on ne sait pas ce qui devient en minuscules si nous avons une méthode comme String camelCaseString = dog.toCamelCase() ou interface CamelCase.

Connexes: https://english.stackexchange.com/questions/889/when-should-compound-words-be-written-as-one-Word-with-hyphens-or-with-spaces

78
Niklas

Vous devez mettre la lettre en majuscule après l'endroit où il y aurait "normalement" un espace (lorsque vous écririez une lettre au lieu du code source). Votre première hypothèse est correcte:

  • C'est une "moto", pas un "cycle moteur", donc votre variable doit être nommée motorcycle, pas motorCycle.
  • C'est une "carte de hachage", donc vous allez avec hashMap, pas hashmap.
  • "Dimanche" est un mot -> sunday, pas sunDay.
  • Alors que "jour de la semaine" serait dayOfWeek, pas dayofweek.
176
oezi

Partie 1
Je pense que ce qui vous fait trébucher, c'est que certains de vos exemples sont mots composés , tandis que d'autres ne le sont pas.

  • numéro de téléphone // pas un mot composé
  • moto // mot composé
  • longueur d'onde // mot composé
  • écran solaire // mot composé
  • Dimanche // mot composé *
  • couleur de la moto // mot composé utilisé avec un mot non composé.

Les mots composés ne suivent pas la notation en cas de chameau pour le deuxième mot du mot composé.

C'est donc motorcycle et non motorCycle.

Mais "numéro de téléphone" n'est pas un mot composé et il le ferait suivre la notation de cas de chameau. c'est-à-dire phoneNumber.

Et cela conduit à: motorcycleColor.

Si je ne me souviens pas si un mot est vraiment un mot composé ou non, je le recherche dans le dictionnaire pour en être certain.

Partie 2
Deux de vos exemples sont un peu plus délicats.

  • carte de hachage
  • table de hachage

Ils sont délicats car certains les épeleront comme "hashmap" et "hashtable". Selon le dictionnaire que je viens de vérifier, ce sont des mots distincts et non un mot composé. Ainsi, le bon cas de chameau serait hashMap et hashTable. Toutes les équipes ne suivent pas cette convention, vous devez donc demander à vos coéquipiers ce qu'elles préfèrent, puis vous y tenir. La cohérence est plus importante dans ce cas que ce qu'un dictionnaire peut dire est correct.

* Certains diront que le dimanche est un mot composé puisque les autres jours de la semaine ne le sont pas, mais pour les besoins de cette question, je contournerai ce problème. Il est plus facile de traiter comme un mot composé et donc pas de cas de chameau.

44
user53019

Comme d'autres l'ont souligné, l'étui à chameau est utilisé pour joindre des mots. N'utilisez pas d'étui à chameau dans un seul mot anglais. Le problème vient de déterminer quels composés sont des mots uniques. Laissés à eux-mêmes, les programmeurs prendront des décisions différentes selon leur connaissance de l'anglais. Cela conduit à des incohérences dans la capitalisation, qui sont presque aussi ennuyeuses que les fautes d'orthographe.

Pour éviter cela, les programmeurs doivent utiliser une référence standard (par exemple dictionary.com ) lorsqu'ils ne sont pas sûrs de l'orthographe ou de la capitalisation. Néanmoins, si la cohérence de la dénomination est importante pour votre projet, rien ne peut remplacer la révision du code.

Choisir une seule référence pour votre projet résoudra la plupart des arguments concernant la capitalisation et l'orthographe. Il existe certains composés comme Hashtable qui ne sont pas dans les dictionnaires, mais qui sont mis en majuscule en tant que mots simples dans les API Java et C #. Vous voudrez prendre une décision à l'échelle du projet à ce sujet. En Java, c'est "HashMap" mais "Hashtable". IMO "Hashtable" est clairement incorrect, il n'apparaît jamais comme un seul mot, sauf comme nom dans une API.

8
kevin cline

La façon la plus simple de faire un cas de chameau est de délimiter Word.

Exemples de votre question:

  • numéro de téléphone: phoneNumber
  • moto: moto
  • dimanche: dimanche
  • longueur d'onde: longueur d'onde

Si vous ne le divisez pas en deux mots, vous ne devriez pas non plus utiliser d'étui à chameau dessus. Sinon, vous l'utilisez sur des syllabes et à quel point cela semble-t-il stupide

  • aUXILIArY (Ceci est un mot de 5 syllabes; sans parler des I qui ressemblent à de la merde sur les polices non monospaces/sans-serif).
4
Jeff Langemeier

C'est là qu'une complication avec un anglais simple gêne la façon dont on abuse plus tard de l'anglais pour s'adapter aux règles d'espaces blancs des jetons dans des contextes de programmation.

Parmi les exemples de mots que vous donnez, presque tous sont des composés. dimanche ne l'est pas, car alors qu'il était originaire d'un composé, il l'a fait il y a si longtemps qu'il peut à peine être considéré comme tel maintenant, d'autant plus que son dévouement au Soleil est plus une curiosité historique qu'un partie intégrante des perspectives religieuses et culturelles des anglophones.

Et en anglais, les trois principales façons d'écrire un composé sont ouvertes (avec un espace entre les deux mots), coupées et fermées (sans espace ni trait d'union entre les deux). Et bien qu'il existe des règles sur la césure des composés ouverts dans certaines situations, il n'y a pas vraiment de règles fermes pour savoir quelle forme est utilisée pour un composé donné au-delà de voir ce que font les autres, et il y a encore des moments où vous 'trouverai deux ou même les trois formes (batteur à oeufs, batteur à oeufs et batteur à oeufs par exemple).

Ici, numéro de téléphone est presque toujours écrit ouvert, il doit donc être traité comme deux mots.

Et lors de l'intercapsulation pour former un jeton, l'espace ou le tiret est supprimé et le deuxième mot et les suivants sont écrits dans la casse du titre, donc phoneNumber ou PhoneNumber selon votre convention.

La chose qui fait que phoneNumber semble étrange est probablement qu'elle est plus communément donnée comme phone dans la plupart des contextes, ou comme number lorsque le contexte concerne une connexion téléphonique.

4
Jon Hanna

Assurer la cohérence dans le fichier de code.

Promouvoir la cohérence au sein du projet de code.

Préférez la cohérence dans la bibliothèque de code.

La composition des mots pour représenter les concepts change à mesure que nous nous familiarisons avec un agglutination .

Par exemple ...

  • "poste téléphonique" est devenu raccourci à "téléphone"
  • "téléphone" est devenu raccourci à "téléphone"
  • 'numéro de téléphone' était parfois contracté en 'numéro de téléphone'
  • 'numéro de téléphone' est rapidement devenu 'numéro de téléphone'
  • "numéro de téléphone" est souvent encore raccourci en "téléphone"
  • "téléphone portable", ou tout simplement "cellulaire" sont couramment utilisés aujourd'hui
  • 'homephone' et 'workphone' pourraient bientôt devenir courants aussi

Notez que le correcteur orthographique StackExchange ne peut pas se décider. 'Phonenumber' à la fin de la phrase ci-dessus était bien, mais il marque celui au début de la phrase (en majuscule ou non).

Autant que la plupart des gens souhaitent qu'il y ait "une seule bonne façon" de faire les choses, quand il s'agit de langue, cela ne peut jamais l'être. Au moment où vous aurez terminé votre projet, l'utilisation aura probablement changé. Certes, votre compréhension aura changé et la fonctionnalité de la méthode/et.al. aura probablement changé aussi. (Dans ce cas, vous devriez probablement changer le nom de manière appropriée.)

2
DocSalvager