J'ai un doute sur CamelCase. Supposons que vous ayez cet acronyme:Unesco = United Nations Educational, Scientific and Cultural Organization.
Vous devez écrire: unitedNationsEducationalScientificAndCulturalOrganization
Mais que faire si vous avez besoin d'écrire l'acronyme? Quelque chose comme:
getUnescoProperties();
Est-il juste de l'écrire de cette façon? getUnescoProperties() OR getUNESCOProperties();
coding-style
camelcasing
acronym
gal007
la source
la source
get_unesco_properties
ouget_u_n_e_s_c_o_properties
?Réponses:
Certaines lignes directrices sur lesquelles Microsoft a écrit
camelCase
sont:Résumant:
Lorsque vous utilisez une abréviation ou un acronyme de deux caractères, mettez-les tous en majuscules;
Lorsque l'acronyme dépasse deux caractères, utilisez une majuscule pour le premier caractère.
Donc, dans votre cas spécifique,
getUnescoProperties()
c'est correct.la source
ID
placeId
(que j'utilise / vois partout)XMLHttpRequest()
originaire de Microsoft.Il y a des critiques légitimes des conseils de Microsoft à partir de la réponse acceptée.
playerID
vsplayerId
vsplayerIdentifier
.USTaxes
contreusTaxes
USID
vsusId
(ouparseDBMXML
dans l'exemple de Wikipedia).Je vais donc publier cette réponse comme alternative à la réponse acceptée. Tous les acronymes doivent être traités de manière cohérente; les acronymes doivent être traités comme tout autre mot. Citant Wikipédia :
Donc, concernant la question d'OP, je suis d'accord avec la réponse acceptée; c'est correct:
getUnescoProperties()
Mais je pense que j'arriverais à une conclusion différente dans ces exemples:
US Taxes
→usTaxes
Player ID
→playerId
Alors votez pour cette réponse si vous pensez que les acronymes à deux lettres doivent être traités comme les autres acronymes.Camel Case est une convention, pas une spécification. Je suppose donc que les règles d'opinion populaire.( EDIT: Suppression de cette suggestion selon laquelle les votes devraient décider de cette question; comme @Brian David le dit; Stack Overflow n'est pas un "concours de popularité", et cette question a été fermée comme "basée sur l'opinion")
Même si beaucoup préfèrent traiter les acronymes comme n'importe quel autre mot, la pratique la plus courante peut être de mettre des acronymes en majuscules (même si cela conduit à des "abominations")
Autres ressources:
la source
USTaxes
etPlayerId
; camelCase:usTaxes
etplayerId
. 3) Ce seraitUSId
en PascalCase,usId
en camelCase etparseDbmXml
en camelCase.InIN(item)
vsInIn(item)
(indice: IN est pouces (es)). Ou,IDById(id)
vsIdById(id)
, science du contexte (indice: ID signifie maladie infectieuse). "Deux caractères de long" - dans quel contexte?Tout d'abord, je dois préciser que je ne suis pas un anglophone natif , donc mon affirmation sur la grammaire anglaise peut tout simplement être erronée. Si vous découvrez de telles erreurs, faites-le moi savoir et je vous en serai très reconnaissant.
La meilleure pratique pour l'acronyme serait d'éviter autant que possible les acronymes. Quoi qu'il en soit, ce n'est pas le cas car l'acronyme
UNESCO
est plus familier que le nom completUnitedNationsEducationalScientificAndCulturalOrganization
.Ensuite, je pense que
UNESCO
c'est plus logique queUnesco
parce que c'est tout simplement plus proche de la forme de vie réelle, donc plus familier. J'ai eu du mal à comprendre ce que le motUnesco
signifie réellement.Comme autre exemple, réfléchissez
Arc
. Cela ressemble à une courbe autour d'un cercle, mais dans Rust, cela signifieAtomically Reference Counted
. Si c'est écrit commeARC
, au moins les lecteurs reconnaîtraient que le mot est un acronyme d'autre chose plutôt qu'une sorte de courbe.Les programmes modernes sont écrits principalement pour les lecteurs humains. Ensuite, ces règles de dénomination doivent être définies pour une lisibilité humaine plutôt que pour le traitement ou l'analyse de la machine.
Dans cette perspective, nous perdons une certaine lisibilité en utilisant
Unesco
plusUNESCO
sans gagner rien.Et pour tous les autres cas, je pense que le simple fait de suivre les règles (ou conventions) de l'acronyme anglais est suffisant pour la plupart des cas pour une meilleure lisibilité .
la source
Pour convertir en CamelCase, il existe également l'algorithme de cas de Camel (presque) déterministe de Google :
Dans les exemples suivants, la «demande HTTP XML» est correctement transformée en XmlHttpRequest, XMLHTTPRequest est incorrect.
la source
getUnescoProperties()
devrait être la meilleure solution ...Lorsque cela est possible, suivez simplement le pur
camelCase
, lorsque vous avez des acronymes, laissez-les en majuscules lorsque cela est possible, sinoncamelCase
.En général, dans la programmation OO, les variables doivent commencer par une lettre minuscule (
lowerCamelCase
) et la classe doit commencer par une lettre majuscule (UpperCamelCase
).En cas de doute, devenez pur
camelCase
;)parseXML
c'est bien,parseXml
c'est aussicamelCase
XMLHTTPRequest
devrait êtreXmlHttpRequest
ouxmlHttpRequest
pas possible d'aller avec les acronymes suivants en majuscules, ce n'est définitivement pas clair pour tous les cas de test.par exemple, comment lisez-vous ce mot
HTTPSSLRequest
,HTTP + SSL
ouHTTPS + SL
(cela ne signifie rien , mais ...), dans ce cas , suivi de la convention de cas de chameau et aller pourhttpSslRequest
ouhttpsSlRequest
, il est peut - être plus agréable, mais il est certainement plus clair.la source
HTTPSSL
exemple, bien que SL ne signifie rien, que diriez-vous de quelque chose comme HTTPSSHTunnel? Est-ce HTTPS + SH (shell) ou HTTP + SSH? La convention de Google est nettement moins ambiguë.Il y a un guide de style JavaScript airbnb sur github avec beaucoup d'étoiles (~ 57,5 k en ce moment) et des guides sur les acronymes qui disent:
la source
XMLHTTPRequest
est bien mieux lisible queXmlHttpRequest
, non?httpRequests
est considéré comme bon maisHttpRequests
mauvais. suivant ce principe, pour XML HTTP Request devrait êtrexmlhttpRequest
???xmlHttpRequest
est plus lisible qu'àXMLHTTPRequest
mon avis.Actuellement, j'utilise les règles suivantes:
Cas de la capitale pour les acronymes:
XMLHTTPRequest
,xmlHTTPRequest
,requestIPAddress
.CamelCase pour les abréviations:
ID[entifier]
,Exe[cutable]
,App[lication]
.ID
est une exception, désolé mais vrai.Lorsque je vois une majuscule, j'assume un acronyme, c'est-à-dire un mot distinct pour chaque lettre. Les abréviations n'ont pas de mots séparés pour chaque lettre, donc j'utilise le cas de chameau.
XMLHTTPRequest
est ambigu, mais c'est un cas rare et ce n'est pas tellement ambigu, donc c'est ok, les règles et la logique sont plus importantes que la beauté.la source
Le guide de style JavaScript Airbnb en parle un peu . Fondamentalement:
Parce que je lis généralement une lettre majuscule en classe, j'ai tendance à éviter cela. À la fin de la journée, c'est toute préférence.
la source
En plus de ce que @valex a dit, je veux récapituler quelques éléments avec les réponses données à cette question.
Je pense que la réponse générale est: cela dépend du langage de programmation que vous utilisez.
C Sharp
Microsoft a écrit quelques directives où il semble que ce
HtmlButton
soit la bonne façon de nommer une classe pour ces cas.Javascript
Javascript a quelques variables globales avec des acronymes et il les utilise toutes en majuscules (mais curieusement, pas toujours de manière cohérente) voici quelques exemples:
encodeURIComponent
XMLHttpRequest
toJSON
toISOString
la source
onerror
.Avertissement: L'anglais n'est pas mon ton de mère. Mais j'ai pensé à ce problème depuis longtemps, en particulier lors de l'utilisation de noeud (style camelcase) pour gérer la base de données car le nom des champs de table doit être serpenté, voici ma pensée:
Il existe 2 types d'acronymes pour un programmeur:
tmc and textMessageContainer
, qui apparaît généralement comme une variable locale.Dans le monde de la programmation, tous les acronymes en langage naturel doivent être traités comme des mots , les raisons sont les suivantes:
lorsque nous programmons, nous devons nommer une variable soit en style acronyme soit en style non acronyme. Donc, si nous nommons une fonction getUNESCOProperties, cela signifie que l'UNESCO est un acronyme (sinon ce ne devrait pas être toutes des lettres majuscules), mais évidemment,
get
et ceproperties
ne sont pas des acronymes. nous devons donc nommer cette fonction gunescop ou getUnitedNationsEducationalScientificAndCulturalOrganizationProperties , les deux sont inacceptables.le langage naturel évolue continuellement, et les acronymes d'aujourd'hui deviendront des mots pour demain , mais les programmes devraient être indépendants de cette tendance et durer éternellement.
par ailleurs, dans la réponse la plus votée, IO est l'acronyme dans le sens du langage informatique (signifie InputOutput), mais je n'aime pas le nom, car je pense que l'acronyme (en langage informatique) ne devrait être utilisé que pour nommer une variable locale mais une classe / fonction de niveau supérieur, donc InputOutput doit être utilisé à la place d'IO
la source
L'UNESCO est un cas particulier car il est généralement (en anglais) lu comme un mot et non comme un acronyme - comme l'UEFA, RADA, BAFTA et contrairement à la BBC, HTML, SSL
la source
Il existe également une autre convention camelcase qui tente de favoriser la lisibilité des acronymes en utilisant soit des majuscules (
HTML
), soit des minuscules (html
), mais en évitant les deux (Html
).Donc, dans votre cas, vous pourriez écrire
getUNESCOProperties
. Vous pouvez également écrireunescoProperties
pour une variable ouUNESCOProperties
pour une classe (la convention pour les classes est de commencer par des majuscules).Cette règle devient délicate si vous souhaitez regrouper deux acronymes, par exemple pour une classe nommée XML HTTP Request. Cela commencerait par des majuscules, mais comme
XMLHTTPRequest
il ne serait pas facile à lire (est-ce une demande TTP XMLH?), EtXMLhttpRequest
briserait la convention de camelcase (est-ce une demande LHttp XM?), La meilleure option serait de mélanger la casse:,XMLHttpRequest
qui est en fait ce que le W3C a utilisé . Cependant, l'utilisation de ce type de dénominations est déconseillée. Pour cet exemple,HTTPRequest
serait un meilleur nom.Étant donné que le mot anglais officiel pour identification / identité semble être ID, bien qu'il ne s'agisse pas d'un acronyme, vous pouvez y appliquer les mêmes règles.
Cette convention semble être assez populaire là-bas, mais c'est juste une convention et il n'y a pas de bien ou de mal. Essayez simplement de vous en tenir à une convention et assurez-vous que vos noms sont lisibles.
la source