J'ai du mal à comprendre comment appliquer la 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 le cas d'un chameau? Est-ce phoneNumber
ou phonenumber
? De même avec "nom d'utilisateur", est-ce username
ou userName
?
Je pense qu'il ne semble pas juste avec le cas de chameau comme motorCycle
, passWord
, sunDay
, setUp
ou waveLength
puisque ceux - ci sont juste un mot chacun. Je pense que cela pourrait être la raison pour laquelle il est appelé hashMap
mais aussi hashtable
dans l'affaire des chameaux sans majuscule dans le dernier cas parce que hashtable est un mot alors que hash map est deux mots.
Mais si la motocyclette a une couleur, est-ce motorcycleColor
qu’un mot est concaténé? Est - ce exact ou devrait - il phoneNUmber
, waveLength
, sunBlock
et même sunDay
pour le dimanche de la semaine?
Pourquoi, par exemple, la méthode est-elle appelée getISOCountries
alors qu'elle dit, HttpHeaders
par exemple, on ne sait pas ce qui devient en minuscule si nous avons une méthode comme String camelCaseString = dog.toCamelCase()
ou interface CamelCase
.
username
est ce qu’il est, c’est un indicatif d’appel, pas le "nom de l’utilisateur", c’est donc plus une motocyclette que un prénom ou un nom (qui devrait être mis dans un camelcas)street
devrait être une classe etname
un de ses attributs / données membres.Réponses:
Vous devez mettre la lettre en majuscule après "normalement" un espace (lorsque vous écrivez une lettre au lieu d'un code source). Votre première hypothèse est correcte:
motorcycle
, pasmotorCycle
.hashMap
, pashashmap
.sunday
, passunDay
.dayOfWeek
, pasdayofweek
.la source
hashmap
un seul mot, bien que, paradoxalement, nous ne le sachions pastree map
. haussement d'épauleshoneyBee
(et pashoneybee
, en fait pas "abeille" mais "abeille"), etbutterfly
.setUp
est un cas limite, cependant, c'est un seul mot, maisJUnit
historiquement, son initialisation de fixture est nomméesetUp
.JUnit
a le droit, le reste d'entre nous sont l'affaire de bord. :)tearDown
: DPartie 1
Je pense que ce qui vous a fait trébucher, c'est que certains de vos exemples sont des mots composés , alors que d'autres ne le sont pas.
Les mots composés ne suivent pas la casse du chameau pour le deuxième mot du mot composé.
Donc c'est
motorcycle
et pasmotorCycle
.Mais « numéro de téléphone » est pas un mot composé et il serait suivre la notation camel cas. 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 cherche dans le dictionnaire pour en être certain.
Partie 2
Deux de vos exemples sont un peu plus compliqués.
Ils sont délicats parce que certains vont les épeler "hashmap" et "hashtable". Selon le dictionnaire que je viens de vérifier, ce sont des mots séparés et non un mot composé. Donc, le bon cas de chameau serait
hashMap
ethashTable
. Toutes les équipes ne suivent pas cette convention, vous devez donc demander à vos coéquipiers ce qu’elles préfèrent, puis vous en tenir à cela. La cohérence est plus importante dans ce cas que ce qu'un dictionnaire peut dire est correct.* Certains diront que dimanche est un mot composé, car les autres jours de la semaine ne le sont pas, mais pour les besoins de cette question, je vais éviter cette question. Il est plus facile de traiter comme un mot composé et donc pas de cas de chameau.
la source
if (currentDay == thorsDay) {...
Hmm ... tant pis, les bibliothèques de dates n'ont pas cette option de formatage lorsque vous voulez obtenir le nom complet du jour de la semaine.HashMap hashMap = new HashMap();
Comme d'autres l'ont fait remarquer, la casse de chameau est utilisée pour joindre des mots. N'utilisez pas de chameaux dans un seul mot anglais. Le problème consiste à déterminer quels composés sont des mots simples. Laissés à eux-mêmes, les programmeurs prendront des décisions différentes en fonction de leur connaissance de l'anglais. Cela conduit à des incohérences dans la capitalisation, qui sont presque aussi ennuyeuses que des fautes d'orthographe.
Pour éviter cela, les programmeurs doivent utiliser une référence standard (par exemple, dictionary.com ) lorsqu'ils ne sont pas certains de l'orthographe ou de la capitalisation. Malgré tout, si la cohérence des noms est importante pour votre projet, rien ne remplace 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. Certains composés, comme Hashtable, ne figurent pas dans les dictionnaires, mais sont capitalisés en tant que mots uniques dans les API Java et C #. Vous voudrez prendre une décision concernant l'ensemble du projet. En Java, c'est "HashMap" mais "Hashtable". La "table de hachage" de l'OMI est clairement incorrecte; il n'apparaît jamais sous la forme d'un mot unique, sauf sous la forme d'un nom dans une API.
la source
Le moyen le plus simple de traiter un cas de chameau est la délinéation de mots.
Exemples de votre question:
Si vous ne le divisez pas en deux mots, vous ne devriez pas non plus utiliser un étui à chameau. Sinon, vous l'utilisez sur des syllabes et à quel point ce look est idiot
la source
setup
, alors que si vous avez une fonction pour configurer quelque chose, elle sera appeléesetUp
.wavelength
ouwaveLength
dépendre de si la valeur en question est liée à la vitesse de propagation divisée par la fréquence, ou si elle se rapporte à la "longueur" (pas nécessairement la distance) d'une sorte d'onde . Par exemple, la variable d'une bibliothèque de synthèse audio pour le nombre d'échantillons associés à une onde ne serait paswavelength
maiswaveLength
.WaveLength
serait un peu vague en soi dans les scénarios les plus simplistes (fait-il référence à la taille de la mémoire tampon ou à la longueur de la section de bouclage), mais les mots pourraient parfaitement apparaître sous un nom plus long.C’est là qu’une complication avec un anglais simple empêche un abus ultérieur de l’anglais de s’adapter aux règles d’espace blanc des jetons dans des contextes de programmation.
Parmi les exemples de mots que vous donnez, presque tous sont composés. Le dimanche n’est pas, c’est-à-dire qu’il s’agissait d’un complexe, mais il ya si longtemps qu’il ne peut plus être considéré comme tel aujourd’hui, d’autant plus que le fait de se consacrer au soleil est davantage une curiosité historique qu’un élément fort du contexte religieux et culturel. perspectives des anglophones.
Et en anglais, les trois principales façons d'écrire un composé sont ouvert (avec un espace entre les deux mots), un trait d'union et fermé (sans espace ni trait d'union entre les deux). Et bien qu'il existe certaines règles concernant la césure de composés ouverts dans certaines situations, il n'y a pas vraiment beaucoup de règles fermes pour savoir quelle forme est utilisée pour un composé donné au-delà de voir ce que les autres font, et il y a encore des moments où « ll trouver deux ou même trois formes ( eggbeater , eggbeater et batteur à oeufs par exemple).
Ici, le numéro de téléphone est presque toujours écrit ouvert, il devrait donc être traité comme deux mots.
Et lors de l'intercapage pour former un jeton, l'espace ou le trait d'union est supprimé et le deuxième mot et les mots suivants sont écrits dans la casse du titre, par conséquent
phoneNumber
ouPhoneNumber
selon le cas, en fonction de votre convention.Ce qui
phoneNumber
semble étrange, c'est probablement que c'est plus communément donné commephone
dans la plupart des contextes, ounumber
lorsque le contexte concerne une connexion téléphonique.la source
Assurer la cohérence dans le fichier de code.
Promouvoir la cohérence dans le projet de code.
Préférez la cohérence dans la bibliothèque de code.
La composition de mots pour représenter des concepts change à mesure que nous nous familiarisons avec une agglutination donnée .
Par exemple...
Notez que le correcteur orthographique StackExchange ne peut pas se décider. 'Phonenumber' à la fin de la phrase ci-dessus était correct, mais il marque celui du début de la phrase (en majuscule ou non).
Même si la plupart des gens souhaitent qu’il existe «une seule et même manière» de faire les choses, c’est impossible en matière de langage. À la fin de votre projet, l'utilisation aura probablement changé. Votre compréhension aura certainement changé et la fonctionnalité de la méthode / et.al. aura probablement changé aussi. (Dans ce cas, vous devriez probablement changer le nom en conséquence.)
la source
D'un point de vue strictement technique (États-Unis), où xxx-yyy-zzzz est ce que vous appelleriez normalement un "numéro de téléphone", la partie xxx est correctement désignée par l'indicatif régional, la partie yyy est correctement désignée par le numéro. échange, et le zzzz est correctement appelé le nombre.
Etant donné que non seulement "phonenumber" n'est pas (encore) un mot composé, mais s'il le devenait, il ferait référence incorrectement à quelque chose en dehors de l'intention de son créateur, je dirais que la syntaxe camelCase exigerait phoneNumber pour toute variable qui le référence, mais que vous fassiez n'importe quoi avec le système téléphonique actuel, j'utiliserais phoneExchangeNumber pour les sept chiffres et phoneACExchangeNumber pour les versions à dix chiffres.
la source