首字母缩写在驼峰
我对CamelCase有疑问。 设置你有这个缩写: Unesco = United Nations Educational, Scientific and Cultural Organization.
你应该写: unitedNationsEducationalScientificAndCulturalOrganization
但是如果你需要写首字母缩写呢? 就像是:
getUnescoProperties();
这样写是否正确? getUnescoProperties() OR getUNESCOProperties();
微软撰写的关于camelCase
一些指导原则是:
使用首字母缩略词时,请使用帕斯卡(Pascal)或骆驼(camel)两个字符以上的首字母缩写词。 例如,使用
HtmlButton
或htmlButton
。 但是,您应该首字母缩写只包含两个字符,如System.IO
而不是System.Io
。不要在标识符或参数名称中使用缩写。 如果您必须使用缩写,请使用骆驼大小写缩写,其中包含两个以上的字符,即使这与该单词的标准缩写相矛盾。
加起来:
-
当您使用两个字符的缩写或首字母缩写时,将它们全部放在帽子中;
-
当首字母的首字母缩写比两个字符长时,使用大写字母。
所以,在你的具体情况下, getUnescoProperties()
是正确的。
从被接受的答案来看, 微软的build议存在合理的批评。
- 首字母缩略词的不一致处理取决于字符数量:
-
playerID
vsplayerId
vsplayerIdentifier
。
-
- 如果双字母首字母缩略词出现在标识符的开头,是否应该大写:
-
USTaxes
vsusTaxes
-
- 难以区分多个缩略词:
- 即
USID
vsusId
(或维基百科例子中的parseDBMXML
)。
- 即
所以我会发布这个答案作为接受答案的替代。 投票可以决定。 所有首字母缩略词应该一致对待; 首字母缩略词应像其他词一样对待。 引用维基百科 :
…一些程序员喜欢把缩写看作小写字母。
所以我重新:OP的问题,我同意接受的答案; 这是正确的: getUnescoProperties()
但是我想我会在这些例子中得出不同的结论:
-
US Taxes
→US Taxes
-
Player ID
→playerId
因此,如果您认为双字母缩略词应像其他缩略词一样对待,请为此答复。
骆驼案是一个惯例,而不是一个规范。 所以我猜想stream行的意见规则。
在寻找现有代码或标记中的“stream行”答案时,也许被接受的答案是正确的。
- 请参阅此XML模式中的 “EDXML”
- 请参阅此XBRL架构中的 “SFAS158”
首先,我必须澄清, 我不是以英语为母语的人 ,所以我对英语语法的要求可能是错误的。 如果你发现这样的错误,请让我知道,我将不胜感激。
首字母缩略词的最佳做法是尽可能避免使用缩略词。 无论如何,情况并非如此,因为UNESCO
比全名UnitedNationsEducationalScientificAndCulturalOrganization
UNESCO
更为熟悉。
那么,我认为UNESCO
比Unesco
更有意义,因为它更接近现实生活forms,因此更加熟悉。 我想知道Unesco
意思是什么。
现代节目主要是为了读者而写的。 那么这些命名规则必须设置为可读性,而不是机器处理或分析。
从这个angular度来看,我们使Unesco
在Unesco
上空获得了一些可读性,却一无所获
对于任何其他情况,我认为只要遵循简单的英文缩写规则(或惯例)就足以满足大多数情况下的最佳可读性 。
getUnescoProperties()应该是最好的解决scheme…
如果可能,只要按照纯骆驼,当你有首字母缩略词只是让他们大写,如果可能的话,否则去驼峰。
一般在OO编程中,variables应以小写字母(lowerCamelCase)开头,类应以大写字母(UpperCamelCase)开头。
如果有疑问,只能去纯骆驼;)
parseXML很好,parseXml也是camelCase
XMLHTTPRequest应该是XmlHttpRequest或者xmlHttpRequest,没有办法跟随后面的大写首字母缩略词,对于所有的testing用例来说都是不确定的。
例如,如何读取HTTPSSLRequest,HTTP + SSL或HTTPS + SL(这并不意味着什么,但是…),在这种情况下遵循骆驼大小写约定,去httpSslRequest或httpsSlRequest,也许它不再是好的,但它肯定更清楚。
在github上有很多明星的airbnb JavaScript风格指南 (~57.5k在这个时刻),并指导有关缩写 :
首字母缩略词和首字母缩写应该总是全部大写,或全部小写。
为什么? 名字是为了可读性,而不是为了安抚计算机algorithm。
// bad import SmsContainer from './containers/SmsContainer'; // bad const HttpRequests = [ // ... ]; // good import SMSContainer from './containers/SMSContainer'; // good const HTTPRequests = [ // ... ]; // also good const httpRequests = [ // ... ]; // best import TextMessageContainer from './containers/TextMessageContainer'; // best const requests = [ // ... ];
目前我正在使用以下规则:
-
首字母缩写词:
XMLHTTPRequest
,xmlHTTPRequest
,requestIPAddress
。 -
驼峰案例缩写:
ID[entifier]
,Exe[cutable]
ID[entifier]
Exe[cutable]
,App[lication]
。
ID
是一个例外,但真的很抱歉。
当我看到一个大写字母时,我会假设一个首字母缩写词,即每个字母的单独一个字。 缩写词每个字母都没有单独的单词,所以我使用骆驼案例。
XMLHTTPRequest
是模糊的,但这是一个罕见的情况,并没有太多的含糊,所以没关系,规则和逻辑比美更重要。
要转换为CamelCase,还有Google(几乎)确定性的Camel案例algorithm :
从名字的散文forms开始:
- 将该短语转换为纯ASCII并删除任何撇号。 例如,“Mülleralgorithm”可能会变成“Muellersalgorithm”。
- 将这个结果分成单词,分隔空格和任何剩余的标点符号(通常是连字符)。
- build议:如果任何单词已经具有常规使用的常规骆驼案例,请将其分解为其组成部分(例如,“AdWords”变成“广告词”)。 请注意,像“iOS”这样的单词本身并不是真正的骆驼案例。 它违背了任何惯例,所以这个build议不适用。
- 现在小写的全部(包括首字母缩略词),然后大写只有第一个字符:
- …每个字,产生上骆驼案件,或
- 除了第一个字以外,每一个字都会产生较低的骆驼
- 最后,将所有单词join到一个标识符中。
请注意,原词的shell几乎完全被忽视。
在以下示例中,“XML HTTP请求”已正确转换为XmlHttpRequest,XMLHTTPRequest不正确。
还有另一个camelcase惯例,试图通过使用大写( HTML
)或小写( html
),而避免两个( Html
),以促进可读性的首字母缩略词。
所以在你的情况下,你可以写getUNESCOProperties
。 您也可以为variables编写unescoProperties
,或为类编写unescoProperties
(类的约定以大写开头)。
如果要将两个缩略词放在一起,例如对于名为XML HTTP Request的类,则此规则会变得棘手。 它将以大写字母开头,但是由于XMLHTTPRequest
不容易阅读(是XMLH TTP请求?),而XMLhttpRequest
会打破camelcase约定(是XM Lhttp Request?),所以最好的select是混合大小写: XMLHttpRequest
,这实际上是W3C使用的 。 但是,使用这种命名是不鼓励的。 对于这个例子, HTTPRequest
将是一个更好的名字。
既然官方的英文单词是身份证件,但是不是简称,你可以在这里使用相同的规则。
这个惯例在这里似乎很stream行,但这只是一个惯例,没有对错。 只要坚持一个约定,并确保你的名字是可读的。
联合国教科文组织是一个特例,因为它通常(英文)是一个单词,而不是一个缩写 – 就像UEFA,RADA,BAFTA,不像BBC,HTML,SSL