我对骆驼案有疑问。假设你有这样的首字母缩写:Unesco =联合国教育、科学及文化组织。

你应该写:联合国、国家、科学和文化组织

但是如果你需要写首字母缩写呢?喜欢的东西:

getUnescoProperties();

这样写对吗?getUnescoProperties()或getUnescoProperties();


当前回答

还有另一种驼峰格式的约定,试图通过使用大写(HTML)或小写(HTML)来提高首字母缩略词的可读性,但避免两者同时使用(HTML)。

在你的例子中,你可以写getUNESCOProperties。你也可以为一个变量写unescoProperties,或者为一个类写unescoProperties(类的约定是以大写开头)。

如果您想将两个首字母缩写放在一起,例如一个名为XML HTTP Request的类,则该规则会变得很棘手。它将以大写开始,但由于XMLHTTPRequest不容易阅读(是XMLHTTPRequest吗?),而且XMLHTTPRequest将打破驼峰格式约定(是XMLhttpRequest吗?),最好的选择是混合大小写:XMLHTTPRequest,这实际上是W3C使用的。然而,不鼓励使用这种类型的命名。对于本例,HTTPRequest将是一个更好的名称。

由于标识/身份的官方英文单词似乎是ID,尽管它不是首字母缩略词,所以您可以在这里应用相同的规则。

这种惯例似乎很流行,但这只是惯例,没有对错之分。只要坚持约定,并确保你的名字是可读的。

其他回答

在github上有airbnb JavaScript风格指南,有很多星星(目前约57.5k)和关于首字母缩写的指南,其中说:

首字母缩写和首字母缩写都应该大写,或者全部大写 小写的。 为什么?名字是为了可读性,而不是为了取悦计算机算法。

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

还有另一种驼峰格式的约定,试图通过使用大写(HTML)或小写(HTML)来提高首字母缩略词的可读性,但避免两者同时使用(HTML)。

在你的例子中,你可以写getUNESCOProperties。你也可以为一个变量写unescoProperties,或者为一个类写unescoProperties(类的约定是以大写开头)。

如果您想将两个首字母缩写放在一起,例如一个名为XML HTTP Request的类,则该规则会变得很棘手。它将以大写开始,但由于XMLHTTPRequest不容易阅读(是XMLHTTPRequest吗?),而且XMLHTTPRequest将打破驼峰格式约定(是XMLhttpRequest吗?),最好的选择是混合大小写:XMLHTTPRequest,这实际上是W3C使用的。然而,不鼓励使用这种类型的命名。对于本例,HTTPRequest将是一个更好的名称。

由于标识/身份的官方英文单词似乎是ID,尽管它不是首字母缩略词,所以您可以在这里应用相同的规则。

这种惯例似乎很流行,但这只是惯例,没有对错之分。只要坚持约定,并确保你的名字是可读的。

getUnescoProperties()应该是最好的解决方案…

如果可能的话,遵循纯驼峰式,当你有首字母缩写时,尽可能让它们大写,否则就采用驼峰式。

通常在面向对象编程中,变量应该以小写字母(lowerCamelCase)开始,类应该以大写字母(UpperCamelCase)开始。

如果有疑问,就去纯骆驼牌吧;)

parseXML是好的,parseXML也是camelCase

XMLHTTPRequest应该是XMLHTTPRequest还是XMLHTTPRequest没有办法与后续的大写首字母缩写一起使用,这肯定不是所有测试用例都清楚。

如。 你怎么读这个词httpslrequest, HTTP + SSL,或者HTTPS + SL(这没有任何意思,但…),在这种情况下,遵循驼峰的惯例,去httpslrequest或httpslrequest,也许它不再好看,但它肯定更清楚。

从公认的答案中,对微软的建议有合理的批评。

根据字符数对首字母缩写/首字母缩写的处理不一致: 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

免责声明:英语不是我的母语。但是我已经考虑这个问题很长一段时间了,特别是当使用节点(驼峰风格)来处理数据库时,因为表字段的名称应该是蛇化的,这是我的想法:

对于程序员来说,有两种“首字母缩写”:

自然语言,联合国教科文组织 在计算机编程语言中,例如tmc和textMessageContainer,通常以局部变量的形式出现。

在编程世界中,自然语言中的所有首字母缩略词都应该被视为单词,原因是:

when we programming, we should name a variable either in acronym style or non-acronym-style. So, if we name a function getUNESCOProperties, it means UNESCO is an acronym ( otherwise it shouldn't be all uppercase letters ), but evidently, get and properties are not acronyms. so, we should name this function either gunescop or getUnitedNationsEducationalScientificAndCulturalOrganizationProperties, both are unacceptable. natural language is evolving continuously, and today's acronyms will become words tommorow, but programs should be independent of this trend and stand forever.

顺便说一下,在投票最多的答案中,IO是计算机语言中的首字母缩写(代表InputOutput),但我不喜欢这个名字,因为我认为(在计算机语言中)首字母缩写只应该用于命名局部变量,而不是顶级类/函数,所以应该使用InputOutput而不是IO