Ich habe Zweifel an CamelCase. Angenommen, Sie haben dieses Akronym:Unesco = United Nations Educational, Scientific and Cultural Organization.
Sie sollten schreiben: unitedNationsEducationalScientificAndCulturalOrganization
Aber was ist, wenn Sie das Akronym schreiben müssen? Etwas wie:
getUnescoProperties();
Ist es richtig, es so zu schreiben? getUnescoProperties() OR getUNESCOProperties();
coding-style
camelcasing
acronym
gal007
quelle
quelle
get_unesco_properties
oderget_u_n_e_s_c_o_properties
?Antworten:
Einige Richtlinien, über die Microsoft geschrieben hat,
camelCase
sind:Zusammenfassen:
Wenn Sie eine Abkürzung oder ein Akronym mit zwei Zeichen verwenden, setzen Sie alle in Großbuchstaben.
Wenn das Akronym länger als zwei Zeichen ist, verwenden Sie ein Großbuchstaben für das erste Zeichen.
Also, in Ihrem speziellen Fall
getUnescoProperties()
ist richtig.quelle
ID
stattdessen anfangen zu verwendenId
(was ich überall benutze / sehe)XMLHttpRequest()
ursprünglich von Microsoft.Es gibt berechtigte Kritik an den Microsoft-Ratschlägen aus der akzeptierten Antwort.
playerID
vsplayerId
vsplayerIdentifier
.USTaxes
vs.usTaxes
USID
vsusId
(oderparseDBMXML
im Beispiel von Wikipedia).Daher werde ich diese Antwort als Alternative zur akzeptierten Antwort veröffentlichen. Alle Akronyme sollten konsistent behandelt werden. Akronyme sollten wie jedes andere Wort behandelt werden. Wikipedia zitieren :
Also bezüglich der Frage von OP stimme ich der akzeptierten Antwort zu. das ist richtig:
getUnescoProperties()
Aber ich denke, ich würde in diesen Beispielen zu einem anderen Ergebnis kommen:
US Taxes
→usTaxes
Player ID
→playerId
Stimmen Sie also für diese Antwort ab, wenn Sie der Meinung sind, dass aus zwei Buchstaben bestehende Akronyme wie andere Akronyme behandelt werden sollten.Camel Case ist eine Konvention, keine Spezifikation. Ich denke also, dass es populäre Meinungsregeln gibt.( BEARBEITEN: Entfernen dieses Vorschlags, dass Stimmen über dieses Problem entscheiden sollten; wie @Brian David sagt; Stapelüberlauf ist kein "Beliebtheitswettbewerb", und diese Frage wurde als "meinungsbasiert" geschlossen.)
Obwohl viele es vorziehen, Akronyme wie jedes andere Wort zu behandeln, besteht die üblichere Praxis darin, Akronyme in Großbuchstaben zu setzen (obwohl dies zu "Greueln" führt).
Andere Ressourcen:
quelle
USTaxes
undPlayerId
; camelCase:usTaxes
undplayerId
. 3) Es wäreUSId
in PascalCase,usId
in camelCase undparseDbmXml
in camelCase.InIN(item)
vsInIn(item)
(Hinweis: IN ist Zoll (e)). OderIDById(id)
vsIdById(id)
, Kontextwissenschaft (Hinweis: ID bedeutet infektiöse Krankheit). "Zwei Zeichen lang" - was in welchem Kontext?Zunächst muss ich klarstellen, dass ich kein englischer Muttersprachler bin , sodass meine Behauptung über die englische Grammatik einfach falsch sein kann. Wenn Sie solche Fehler entdecken, lassen Sie es mich bitte wissen, und ich werde sehr dankbar sein.
Die beste Vorgehensweise für Akronyme besteht darin, Akronyme so weit wie möglich zu vermeiden. Dies ist jedoch nicht der Fall, da das Akronym
UNESCO
bekannter ist als der vollständige NameUnitedNationsEducationalScientificAndCulturalOrganization
.Dann denke ich,
UNESCO
macht mehr Sinn, alsUnesco
weil es einfach näher an der realen Lebensform ist, die so vertraut ist. Ich hatte einige Probleme herauszufinden, was das WortUnesco
eigentlich bedeutet.Denken Sie als weiteres Beispiel darüber nach
Arc
. Das klingt wie eine Kurve um einen Kreis, aber in Rust bedeutet dasAtomically Reference Counted
. Wenn es so geschrieben wurdeARC
, würden zumindest die Leser erkennen, dass das Wort eher ein Akronym für etwas anderes als eine Art Kurve ist.Moderne Programme sind hauptsächlich für menschliche Leser geschrieben. Dann müssen diese Namensregeln für die Lesbarkeit des Menschen festgelegt werden und nicht für die maschinelle Verarbeitung oder Analyse.
In dieser Perspektive verlieren wir etwas Lesbarkeit, wenn wir
Unesco
Over verwendenUNESCO
und nichts gewinnen.Und für alle anderen Fälle denke ich, dass es für die meisten Fälle ausreicht , nur einfache englische Akronymregeln (oder Konventionen) zu befolgen , um die beste Lesbarkeit zu gewährleisten .
quelle
Für die Konvertierung in CamelCase gibt es auch den (fast) deterministischen Camel- Fallalgorithmus von Google :
In den folgenden Beispielen wird "XML-HTTP-Anforderung" korrekt in XmlHttpRequest umgewandelt, XMLHTTPRequest ist falsch.
quelle
getUnescoProperties()
sollte die beste Lösung sein ...Wenn möglich, folgen
camelCase
Sie einfach dem reinen , wenn Sie Akronyme haben, lassen Sie sie einfach in Großbuchstaben, wenn möglich, sonst gehencamelCase
.Im Allgemeinen sollten in OO-Programmiervariablen mit Kleinbuchstaben (
lowerCamelCase
) und Klassen mit Großbuchstaben () beginnenUpperCamelCase
) beginnen.Im Zweifelsfall einfach rein gehen
camelCase
;)parseXML
ist in Ordnung,parseXml
ist auchcamelCase
XMLHTTPRequest
sein sollteXmlHttpRequest
oderxmlHttpRequest
keine Möglichkeit , mit anschließenden Großbuchstaben Akronymen zu gehen, ist es definitiv für alle Testfälle nicht klar.zB wie lesen Sie dieses Wort
HTTPSSLRequest
,HTTP + SSL
oderHTTPS + SL
(das bedeutet nicht alles andere als ...), in diesem Fall folgen Kamel Fall Konvention und gehen Sie fürhttpSslRequest
oderhttpsSlRequest
, vielleicht ist es nicht mehr schön, aber es ist auf jeden Fall klar.quelle
HTTPSSL
Beispiel, obwohl SL nichts bedeutet, wie wäre es mit etwas wie HTTPSSHTunnel? Ist es HTTPS + SH (Shell) oder HTTP + SSH? Die Google-Konvention ist definitiv weniger zweideutig.Bei github gibt es einen Airbnb-JavaScript- Styleguide mit vielen Sternen (derzeit ~ 57,5 KB) und Anleitungen zu Akronymen, die besagen:
quelle
XMLHTTPRequest
also viel besser lesbar alsXmlHttpRequest
, richtig?httpRequests
als gut angesehen wird, aberHttpRequests
schlecht ist. Nach diesem Prinzip sollte dann für XML HTTP Request seinxmlhttpRequest
???xmlHttpRequest
ist lesbarer alsXMLHTTPRequest
meiner Meinung nach.Derzeit verwende ich die folgenden Regeln:
Kapital Fall für Akronyme:
XMLHTTPRequest
,xmlHTTPRequest
,requestIPAddress
.Kamel Fall für Abkürzungen:
ID[entifier]
,Exe[cutable]
,App[lication]
.ID
ist eine Ausnahme, sorry aber wahr.Wenn ich einen Großbuchstaben sehe, nehme ich ein Akronym an, dh ein separates Wort für jeden Buchstaben. Abkürzungen haben nicht für jeden Buchstaben ein eigenes Wort, daher verwende ich Kamelkoffer.
XMLHTTPRequest
ist mehrdeutig, aber es ist ein seltener Fall und es ist nicht so vieldeutig, also ist es in Ordnung, Regeln und Logik sind wichtiger als Schönheit.quelle
Der JavaScript Airbnb Style Guide spricht ein wenig darüber . Grundsätzlich:
Da ich normalerweise als Klasse einen führenden Großbuchstaben lese, neige ich dazu, dies zu vermeiden. Am Ende des Tages ist alles Präferenz.
quelle
Zusätzlich zu dem, was @valex gesagt hat, möchte ich einige Dinge mit den gegebenen Antworten auf diese Frage zusammenfassen.
Ich denke, die allgemeine Antwort lautet: Es hängt von der Programmiersprache ab, die Sie verwenden.
C Scharf
Microsoft hat einige Richtlinien geschrieben, in denen es anscheinend
HtmlButton
der richtige Weg ist, eine Klasse für diese Fälle zu benennen.Javascript
Javascript hat einige globale Variablen mit Akronymen und verwendet sie alle in Großbuchstaben (aber lustig, nicht immer konsistent). Hier einige Beispiele:
encodeURIComponent
XMLHttpRequest
toJSON
toISOString
quelle
onerror
.Haftungsausschluss: Englisch ist nicht mein Mutterton. Aber ich habe lange über dieses Problem nachgedacht, insbesondere wenn ich einen Knoten (Camelcase-Stil) für die Verarbeitung von Datenbanken verwende, da der Name von Tabellenfeldern in die Warteschlange gestellt werden sollte. Dies ist mein Gedanke:
Es gibt zwei Arten von Akronymen für einen Programmierer:
tmc and textMessageContainer
, die normalerweise als lokale Variable angezeigt wird.In der Programmierwelt sollten alle Akronyme in natürlicher Sprache als Wort behandelt werden . Die Gründe dafür sind:
Beim Programmieren sollten wir eine Variable entweder im Akronymstil oder im Nicht-Akronymstil benennen. Wenn wir also eine Funktion getUNESCOProperties nennen, bedeutet dies, dass die UNESCO ein Akronym ist (andernfalls sollten es nicht nur Großbuchstaben sein), aber offensichtlich
get
undproperties
keine Akronyme. Daher sollten wir diese Funktion entweder gunescop oder getUnitedNationsEducationalScientificAndCulturalOrganizationProperties nennen . Beide sind nicht akzeptabel.Die natürliche Sprache entwickelt sich kontinuierlich weiter, und die heutigen Akronyme werden morgen zu Wörtern , aber Programme sollten von diesem Trend unabhängig sein und für immer bestehen bleiben.
Übrigens, in der am häufigsten gewählten Antwort ist IO das Akronym in der Bedeutung der Computersprache (steht für InputOutput), aber ich mag den Namen nicht, da ich denke, dass das Akronym (in der Computersprache) nur zum Benennen verwendet werden sollte eine lokale Variable, aber eine Klasse / Funktion der obersten Ebene, daher sollte InputOutput anstelle von IO verwendet werden
quelle
Die UNESCO ist ein Sonderfall, da sie normalerweise (auf Englisch) als Wort und nicht als Akronym gelesen wird - wie UEFA, RADA, BAFTA und im Gegensatz zu BBC, HTML, SSL
quelle
Es gibt auch eine andere Camelcase-Konvention, die versucht, die Lesbarkeit von Akronymen zu verbessern, indem entweder Großbuchstaben (
HTML
) oder Kleinbuchstaben (html
) verwendet werden, wobei jedoch beide (Html
) vermieden werden .In Ihrem Fall könnten Sie also schreiben
getUNESCOProperties
. Sie können auchunescoProperties
für eine Variable oderUNESCOProperties
für eine Klasse schreiben (die Konvention für Klassen beginnt mit Großbuchstaben).Diese Regel wird schwierig, wenn Sie zwei Akronyme zusammenstellen möchten, z. B. für eine Klasse mit dem Namen XML HTTP Request. Es wäre mit Groß beginnen, aber da
XMLHTTPRequest
nicht zu lesen wäre einfach (? Ist es XMLH TTP Request), undXMLhttpRequest
würde brechen die Camelcase - Konvention (? Ist es XM LHTTP Request), die beste Option wäre Fall zu mischen:XMLHttpRequest
, das ist eigentlich was der W3C benutzt . Von der Verwendung dieser Art von Namen wird jedoch abgeraten. Für dieses BeispielHTTPRequest
wäre ein besserer Name.Da das offizielle englische Wort für Identifikation / Identität ID zu sein scheint, obwohl es kein Akronym ist, können Sie dort dieselben Regeln anwenden.
Diese Konvention scheint ziemlich beliebt zu sein, aber es ist nur eine Konvention und es gibt kein Richtig oder Falsch. Versuchen Sie einfach, sich an eine Konvention zu halten und stellen Sie sicher, dass Ihre Namen lesbar sind.
quelle