我对骆驼案有疑问。假设你有这样的首字母缩写:Unesco =联合国教育、科学及文化组织。
你应该写:联合国、国家、科学和文化组织
但是如果你需要写首字母缩写呢?喜欢的东西:
getUnescoProperties();
这样写对吗?getUnescoProperties()或getUnescoProperties();
我对骆驼案有疑问。假设你有这样的首字母缩写:Unesco =联合国教育、科学及文化组织。
你应该写:联合国、国家、科学和文化组织
但是如果你需要写首字母缩写呢?喜欢的东西:
getUnescoProperties();
这样写对吗?getUnescoProperties()或getUnescoProperties();
当前回答
从公认的答案中,对微软的建议有合理的批评。
根据字符数对首字母缩写/首字母缩写的处理不一致: playerID vs playerID vs playerIdentifier。 如果两个字母的首字母缩写出现在标识符的开头,是否仍然应该大写的问题: USTaxes vs USTaxes 区分多个首字母缩写的困难: 即USID vs USID(或维基百科的例子中的parseDBMXML)。
所以我会把这个答案作为公认答案的替代。所有首字母缩略词应一致对待;首字母缩写词应该像对待其他单词一样对待。引用维基百科:
...有些程序员喜欢把缩写当作小写字母来对待。
所以回复:OP的问题,我同意公认的答案;这是正确的:getUnescoProperties()
但我认为我在这些例子中得出了不同的结论:
美国税收→美国税收 玩家ID→playerId
所以,如果你认为两个字母的首字母缩略词应该像其他首字母缩略词一样对待,请投票给这个答案。
Camel Case是一种约定,而不是规范。所以我猜民意决定一切。
(编辑:删除这个问题应该由投票决定的建议;正如@Brian David所说;Stack Overflow不是一个“人气竞赛”,这个问题是“基于意见的”)
尽管许多人喜欢把首字母缩写词当作其他词来对待,但更常见的做法可能是把首字母缩写词全部大写(即使这会导致“可恶的”)。
请参阅此XML模式中的“EDXML” 请参阅此XBRL模式中的“SFAS158”
其他资源:
Note some people distinguish between abbreviation and acronyms Note Microsoft guidelines distinguish between two-character acronyms, and "acronyms more than two characters long" Note some people recommend to avoid abbreviations / acronyms altogether Note some people recommend to avoid camelCase / PascalCase altogether Note some people distinguish between "consistency" as "rules that seem internally inconsistent" (i.e. treating two-character acronyms different than three-character acronyms); some people define "consistency" as "applying the same rule consistently" (even if the rule is internally inconsistent) Framework Design Guidelines Microsoft Guidelines
其他回答
目前我正在使用以下规则:
首字母缩写的大写字母:XMLHTTPRequest, XMLHTTPRequest, requestIPAddress。 驼色表示缩写:ID[标识符],Exe[可切割的],App[应用程序]。
ID是个例外,抱歉,但这是真的。
当我看到一个大写字母时,我认为这是一个首字母缩写,即每个字母对应一个单独的单词。缩写并不是每个字母都有单独的单词,所以我使用驼峰格。
XMLHTTPRequest是模棱两可的,但这是罕见的情况,它并没有那么模棱两可,所以没关系,规则和逻辑比美观更重要。
JavaScript Airbnb风格指南谈到了这一点。基本上:
// bad
const HttpRequests = [ req ];
// good
const httpRequests = [ req ];
// also good
const HTTPRequests = [ req ];
因为我通常在课堂上阅读大写字母的前导,所以我倾向于避免这样做。说到底,这都是个人偏好。
从公认的答案中,对微软的建议有合理的批评。
根据字符数对首字母缩写/首字母缩写的处理不一致: playerID vs playerID vs playerIdentifier。 如果两个字母的首字母缩写出现在标识符的开头,是否仍然应该大写的问题: USTaxes vs USTaxes 区分多个首字母缩写的困难: 即USID vs USID(或维基百科的例子中的parseDBMXML)。
所以我会把这个答案作为公认答案的替代。所有首字母缩略词应一致对待;首字母缩写词应该像对待其他单词一样对待。引用维基百科:
...有些程序员喜欢把缩写当作小写字母来对待。
所以回复:OP的问题,我同意公认的答案;这是正确的:getUnescoProperties()
但我认为我在这些例子中得出了不同的结论:
美国税收→美国税收 玩家ID→playerId
所以,如果你认为两个字母的首字母缩略词应该像其他首字母缩略词一样对待,请投票给这个答案。
Camel Case是一种约定,而不是规范。所以我猜民意决定一切。
(编辑:删除这个问题应该由投票决定的建议;正如@Brian David所说;Stack Overflow不是一个“人气竞赛”,这个问题是“基于意见的”)
尽管许多人喜欢把首字母缩写词当作其他词来对待,但更常见的做法可能是把首字母缩写词全部大写(即使这会导致“可恶的”)。
请参阅此XML模式中的“EDXML” 请参阅此XBRL模式中的“SFAS158”
其他资源:
Note some people distinguish between abbreviation and acronyms Note Microsoft guidelines distinguish between two-character acronyms, and "acronyms more than two characters long" Note some people recommend to avoid abbreviations / acronyms altogether Note some people recommend to avoid camelCase / PascalCase altogether Note some people distinguish between "consistency" as "rules that seem internally inconsistent" (i.e. treating two-character acronyms different than three-character acronyms); some people define "consistency" as "applying the same rule consistently" (even if the rule is internally inconsistent) Framework Design Guidelines Microsoft Guidelines
getUnescoProperties()应该是最好的解决方案…
如果可能的话,遵循纯驼峰式,当你有首字母缩写时,尽可能让它们大写,否则就采用驼峰式。
通常在面向对象编程中,变量应该以小写字母(lowerCamelCase)开始,类应该以大写字母(UpperCamelCase)开始。
如果有疑问,就去纯骆驼牌吧;)
parseXML是好的,parseXML也是camelCase
XMLHTTPRequest应该是XMLHTTPRequest还是XMLHTTPRequest没有办法与后续的大写首字母缩写一起使用,这肯定不是所有测试用例都清楚。
如。 你怎么读这个词httpslrequest, HTTP + SSL,或者HTTPS + SL(这没有任何意思,但…),在这种情况下,遵循驼峰的惯例,去httpslrequest或httpslrequest,也许它不再好看,但它肯定更清楚。
微软写的关于camelCase的一些指导方针是:
当使用首字母缩略词时,长度超过两个字符的首字母缩略词应使用Pascal大小写或驼峰大小写。例如,使用HtmlButton或HtmlButton。但是,只由两个字符组成的首字母缩写词应该大写,例如System。而不是System.Io。 不要在标识符或参数名中使用缩写。如果必须使用缩写,则使用驼峰大小写表示包含两个以上字符的缩写,即使这与单词的标准缩写相矛盾。
总结:
当你使用的缩写或首字母缩写只有两个字符长时,全部用大写; 当首字母缩略词超过两个字符时,第一个字符用大写。
因此,在您的特定情况下,getUnescoProperties()是正确的。