首字母大写首字母缩略词关闭](Acronyms in CamelCase [closed])

2019-07-22 03:47发布

我有一个关于驼峰疑问。 Supose你有这样的缩写: Unesco = United Nations Educational, Scientific and Cultural Organization.

你应该写: unitedNationsEducationalScientificAndCulturalOrganization

但是,如果你需要写什么的缩写? 就像是:

getUnescoProperties();

那么,是否可以这样说写? getUnescoProperties() OR getUNESCOProperties();

Answer 1:

一些指引微软已经写了camelCase是:

当使用首字母缩写词,使用Pascal大小写或骆驼的情况下缩写词比长两个字符以上。 例如,使用HtmlButtonhtmlButton 。 但是,你应该利用这仅包含两个字符,如首字母缩写System.IO而不是System.Io

不要使用标识符或参数名称的缩写。 如果必须使用缩写,使用骆驼情况下对于由多于两个字符缩写,即使这违背了单词的标准缩写。

加起来:

  • 当您使用的缩写或缩写是两个字符长,把他们都在上限;

  • 当缩写,是不是两个字符长,使用大写字母的第一个字符。

因此,在特定情况下, getUnescoProperties()是正确的。



Answer 2:

这里是合法的批评微软建议从接受的答案。

  • 取决于字符的数缩略词/ initialisms的不一致处理:
    • playerID VS playerId VS playerIdentifier
  • 如果他们出现在标识的启动是否两个字母缩写词的问题,仍然应该大写:
    • USTaxes VS usTaxes
  • 难以区分多首字母缩写词:
    • USID VS usId (或parseDBMXML在维基百科的例子)。

所以我会后这个答案作为替代接受的答案。 投票可以决定。 所有的缩写词应统一处理; 首字母缩写词应该像任何其他文字处理。 引用维基百科 :

...有些程序员喜欢,好像他们是小写的话治疗的缩写...

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

但我想我会到达这些例子不同的结论:

  • US TaxesusTaxes
  • Player IDplayerId

所以投票给这个答案,如果你认为两个字母的缩写应该像其他的缩写词进行处理。

骆驼案例是一个惯例,并不是一个规范。 所以我想民意规则。

而在寻找现有代码或标记的“流行”的答案,也许公认的答案是正确的。

  • 请参阅“EDXML”在这个XML模式
  • 请参阅“SFAS158”这个XBRL架构


Answer 3:

首先,我要澄清, 我不是以英语为母语 ,所以我对英语语法的要求可以简单地是错误的。 如果你发现这样的错误,请让我知道,我会非常感激。


对于缩写最好的做法是避免首字母缩写词尽可能。 无论如何,这是不是这样的,因为缩写UNESCO比全名更熟悉UnitedNationsEducationalScientificAndCulturalOrganization

然后,我觉得UNESCO使得比更有意义Unesco因为只是它更接近现实生活中的表格,以便更熟悉。 我遇到了一些麻烦搞清楚什么字Unesco实际上意味着。

作为另一个例子,想想Arc 。 这听起来像一圈一圈的曲线,但在锈,这意味着Atomically Reference Counted 。 如果它被写的ARC ,至少读者会认识到,这个词是别人,而不是一种曲线的东西的缩写。

现代课程主要为人类的读者而写。 然后这些命名规则必须易读性 ,而不是机械加工或分析来设置。

从这个角度来看,我们通过使用失去了一些可读性UnescoUNESCO的同时,获得什么。

而对于其他任何情况下,我认为只是跟着普通的英文缩写规则(或约定),是足以让大多数情况下实现了最佳可读性



Answer 4:

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

如果可能的话只需按照纯粹的camelCase ,当你有缩略词只是让他们大写在可能的情况,否则去camelCase

一般来说,在面向对象编程的变量应该与小写字母(开始lowerCamelCase )和类应该大写字母(开始UpperCamelCase )。

有疑问时只是走清纯camelCase ;)

parseXML是好的, parseXml也是camelCase

XMLHTTPRequest应该是XmlHttpRequestxmlHttpRequest没有路可走,随后大写首字母缩写,它是明确不明确所有的测试用例。

例如,你怎么看这个词HTTPSSLRequestHTTP + SSLHTTPS + SL (这并不意味着什么,但...),在这种情况下,跟随骆驼约定,去httpSslRequesthttpsSlRequest ,也许就不再漂亮,但它肯定是更清晰。



Answer 5:

要转换为驼峰匹配,也有谷歌的(几乎)确定性驼峰算法 :

名为的散文形式的开头:

  1. 短语转换为纯ASCII,并移除任何撇号。 例如,“穆勒的算法”可能变成“MUELLERS算法”。
  2. 除此结果进言,在空间分割和任何剩余的标点(通常连字符)。
    1. 建议:如果任何词已经在共同使用的常规骆驼情况下的外观,拆分成其组成部分(例如,“的AdWords”变成“广告词语”)这一点。 需要注意的是,如“iOS”其中一个字是不是真的在骆驼本身; 这违背任何约定。因此,这一建议并不适用。
  3. 现在小写的一切(包括首字母缩写),那么只有大写的第一个字符:
    1. ...每个字,以产生上骆驼情况下,或
    2. ...除了第一每个字,以得到较低的情况下,骆驼
  4. 最后,加入所有的话到一个单一的标识符。

需要注意的是原话的外壳几乎完全忽略不计。

在下面的例子中,“XML HTTP请求”是否正确地变换到的XmlHttpRequest,XMLHttpRequest是不正确。



Answer 6:

有制作的Airbnb的JavaScript风格指南在github上有很多明星(〜在这一刻57.5k)和导游有关的缩写其中说:

缩写词和initialisms总是应该全部大写,或全部小写。

为什么? 名称是可读性,而不是安抚计算机算法。

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


Answer 7:

目前我使用以下规则:

  1. 死刑案件的首字母缩写: XMLHTTPRequestxmlHTTPRequestrequestIPAddress

  2. 骆驼情况下缩写: ID[entifier] Exe[cutable]App[lication]

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

当我看到一个大写字母我假设的缩写,即每个字母单独的词。 缩略语没有单独的单词的每个字母,所以我用骆驼情况。

XMLHTTPRequest是ambigous,但它是一种罕见的情况下,它是没有那么多暧昧,所以它的确定,规则和逻辑比美丽更重要。



Answer 8:

JavaScript的制作的Airbnb风格指南谈到这一点 。 基本上:

// bad
const HttpRequests = [ req ];

// good
const httpRequests = [ req ];

// also good
const HTTPRequests = [ req ];

因为我通常读了领先的大写字母为一类,我倾向于避免这种情况。 在一天结束的时候,这一切都偏好。



Answer 9:

还有,试图通过使用大写(赞成缩写词可读性另一个驼峰约定HTML ),或小写( html ),但避免双方( Html )。

所以你的情况,你可以写getUNESCOProperties 。 你也可以写unescoProperties一个变量,或UNESCOProperties一类(类惯例是开始大写)。

如果你想两个首字母缩写词放在一起,例如一类名为XML HTTP请求这条规则得到棘手。 它将以大写开始,但由于XMLHTTPRequest不会是容易阅读(?是XMLH TTP请求),和XMLhttpRequest将打破驼峰约定(?是不是XM Lhttp请求),最好的办法是混合的情况下: XMLHttpRequest ,什么这实际上是使用W3C 。 然而,使用这种namings是不鼓励。 在这个例子中, HTTPRequest将是一个更好的名字。

由于官方的英文单词识别/身份似乎是ID,虽然不是一个缩写,您可以应用同样的规则存在。

这种约定似乎是相当流行在那里,但它只是一个惯例,没有对错之分。 只是尽量坚持公约,并确保你的名字是可读。



Answer 10:

教科文组织是一个特例,因为它通常是(英文)读成一个词,不是一个缩写 - 像欧洲,RADA,BAFTA和BBC不同,HTML,SSL



Answer 11:

除了什么@valex说,我想回顾一下几件事情与这一问题给出答案。

我觉得一般的答案是:这取决于您所使用的编程语言。

升C

微软已经写了一些准则,其中似乎HtmlButton是来命名,这个案件一类的正确方法。

使用Javascript

JavaScript有与缩略语一些全局变量,它使用它们全部以大写字母(但好笑,不总是一致的),这里有一些例子:

encodeURIComponent XMLHttpRequest toJSON toISOString



Answer 12:

免责声明:英语不是我的母亲语气。 但我想过这个问题,很长一段时间,尤其使用节点时(大小写混合样式)来处理数据库,因为表中的字段名称应snakeized,这是我的想法:

有2种一个程序员“的缩写”的:

  • 在自然语言,联合国教科文组织
  • 在计算机编程语言,例如, tmc and textMessageContainer ,其通常显示为本地变量。

在编程世界,在自然语言缩略语都应该被视为 ,原因是:

  1. 当我们编程中,我们应该命名变量无论是在风格的缩写或不缩写式。 所以,如果我们将其命名功能getUNESCOProperties,这意味着教科文组织是一个缩写(否则不应该是全部大写字母),但显然, getproperties都没有首字母缩写词。 所以,我们应该命名此函数或者gunescopgetUnitedNationsEducationalScientificAndCulturalOrganizationProperties,都是不可接受的。

  2. 自然语言是不断发展的,而今天的首字母缩写词将成为明天的话 ,但程序应该是独立的这一趋势,站在永远。

顺便说一下,在最投票的答案,IO是计算机语言的意义(代表投入产出)的缩写,但我不喜欢这个名字,因为我觉得缩写(计算机语言)应只用于命名局部变量,但顶层类/函数,所以输入 - 输出应改为使用IO的



文章来源: Acronyms in CamelCase [closed]