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
.
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:
motorcycle
, pas motorCycle
.hashMap
, pas hashmap
.sunday
, pas sunDay
.dayOfWeek
, pas dayofweek
. 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.
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.
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.
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.
La façon la plus simple de faire un cas de chameau est de délimiter Word.
Exemples de votre question:
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
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.
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 ...
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.)