首字母缩写在驼峰

我对CamelCase有疑问。 设置你有这个缩写: Unesco = United Nations Educational, Scientific and Cultural Organization.

你应该写: unitedNationsEducationalScientificAndCulturalOrganization

但是如果你需要写首字母缩写呢? 就像是:

 getUnescoProperties(); 

这样写是否正确? getUnescoProperties() OR getUNESCOProperties();

微软撰写的关于camelCase一些指导原则是:

使用首字母缩略词时,请使用帕斯卡(Pascal)或骆驼(camel)两个字符以上的首字母缩写词。 例如,使用HtmlButtonhtmlButton 。 但是,您应该首字母缩写只包含两个字符,如System.IO而不是System.Io

不要在标识符或参数名称中使用缩写。 如果您必须使用缩写,请使用骆驼大小写缩写,其中包含两个以上的字符,即使这与该单词的标准缩写相矛盾。

加起来:

  • 当您使用两个字符的缩写或首字母缩写时,将它们全部放在帽子中;

  • 当首字母的首字母缩写比两个字符长时,使用大写字母。

所以,在你的具体情况下, getUnescoProperties()是正确的。

从被接受的答案来看, 微软的build议存在合理的批评。

  • 首字母缩略词的不一致处理取决于字符数量:
    • playerID vs playerId vs playerIdentifier
  • 如果双字母首字母缩略词出现在标识符的开头,是否应该大写:
    • USTaxes vs usTaxes
  • 难以区分多个缩略词:
    • USID vs usId (或维基百科例子中的parseDBMXML )。

所以我会发布这个答案作为接受答案的替代。 投票可以决定。 所有首字母缩略词应该一致对待; 首字母缩略词应像其他词一样对待。 引用维基百科 :

…一些程序员喜欢把缩写看作小写字母。

所以我重新:OP的问题,我同意接受的答案; 这是正确的: getUnescoProperties()

但是我想我会在这些例子中得出不同的结论:

  • US TaxesUS Taxes
  • Player IDplayerId

因此,如果您认为双字母缩略词应像其他缩略词一样对待,请为此答复。

骆驼案是一个惯例,而不是一个规范。 所以我猜想stream行的意见规则。

在寻找现有代码或标记中的“stream行”答案时,也许被接受的答案是正确的。

  • 请参阅此XML模式中的 “EDXML”
  • 请参阅此XBRL架构中的 “SFAS158”

首先,我必须澄清, 我不是以英语为母语的人 ,所以我对英语语法的要求可能是错误的。 如果你发现这样的错误,请让我知道,我将不胜感激。


首字母缩略词的最佳做法是尽可能避免使用缩略词。 无论如何,情况并非如此,因为UNESCO比全名UnitedNationsEducationalScientificAndCulturalOrganization UNESCO更为熟悉。

那么,我认为UNESCOUnesco更有意义,因为它更接近现实生活forms,因此更加熟悉。 我想知道Unesco意思是什么。

现代节目主要是为了读者而写的。 那么这些命名规则必须设置为可读性,而不是机器处理或分析。

从这个angular度来看,我们使UnescoUnesco上空获得了一些可读性,却一无所获

对于任何其他情况,我认为只要遵循简单的英文缩写规则(或惯例)就足以满足大多数情况下的最佳可读性

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 = [ // ... ]; 

目前我正在使用以下规则:

  1. 首字母缩写词: XMLHTTPRequestxmlHTTPRequestrequestIPAddress

  2. 驼峰案例缩写: ID[entifier]Exe[cutable] ID[entifier] Exe[cutable]App[lication]

ID是一个例外,但真的很抱歉。

当我看到一个大写字母时,我会假设一个首字母缩写词,即每个字母的单独一个字。 缩写词每个字母都没有单独的单词,所以我使用骆驼案例。

XMLHTTPRequest是模糊的,但这是一个罕见的情况,并没有太多的含糊,所以没关系,规则和逻辑比美更重要。

要转换为CamelCase,还有Google(几乎)确定性的Camel案例algorithm :

从名字的散文forms开始:

  1. 将该短语转换为纯ASCII并删除任何撇号。 例如,“Mülleralgorithm”可能会变成“Muellersalgorithm”。
  2. 将这个结果分成单词,分隔空格和任何剩余的标点符号(通常是连字符)。
    1. build议:如果任何单词已经具有常规使用的常规骆驼案例,请将其分解为其组成部分(例如,“AdWords”变成“广告词”)。 请注意,像“iOS”这样的单词本身并不是真正的骆驼案例。 它违背了任何惯例,所以这个build议不适用。
  3. 现在小写的全部(包括首字母缩略词),然后大写只有第一个字符:
    1. …每个字,产生上骆驼案件,或
    2. 除了第一个字以外,每一个字都会产生较低的骆驼
  4. 最后,将所有单词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