我有一个关于驼峰疑问。 Supose你有这样的缩写: Unesco = United Nations Educational, Scientific and Cultural Organization.
你应该写: unitedNationsEducationalScientificAndCulturalOrganization
但是,如果你需要写什么的缩写? 就像是:
getUnescoProperties();
那么,是否可以这样说写? getUnescoProperties() OR getUNESCOProperties();
Answer 1:
一些指引微软已经写了camelCase
是:
当使用首字母缩写词,使用Pascal大小写或骆驼的情况下缩写词比长两个字符以上。 例如,使用HtmlButton
或htmlButton
。 但是,你应该利用这仅包含两个字符,如首字母缩写System.IO
而不是System.Io
。
不要使用标识符或参数名称的缩写。 如果必须使用缩写,使用骆驼情况下对于由多于两个字符缩写,即使这违背了单词的标准缩写。
加起来:
因此,在特定情况下, getUnescoProperties()
是正确的。
Answer 2:
这里是合法的批评微软建议从接受的答案。
- 取决于字符的数缩略词/ initialisms的不一致处理:
-
playerID
VS playerId
VS playerIdentifier
。
- 如果他们出现在标识的启动是否两个字母缩写词的问题,仍然应该大写:
- 难以区分多首字母缩写词:
- 即
USID
VS usId
(或parseDBMXML
在维基百科的例子)。
所以我会后这个答案作为替代接受的答案。 投票可以决定。 所有的缩写词应统一处理; 首字母缩写词应该像任何其他文字处理。 引用维基百科 :
...有些程序员喜欢,好像他们是小写的话治疗的缩写...
于是我重新:OP的问题,我同意接受的答案; 这是正确的: getUnescoProperties()
但我想我会到达这些例子不同的结论:
-
US Taxes
→ usTaxes
-
Player ID
→ playerId
所以投票给这个答案,如果你认为两个字母的缩写应该像其他的缩写词进行处理。
骆驼案例是一个惯例,并不是一个规范。 所以我想民意规则。
而在寻找现有代码或标记的“流行”的答案,也许公认的答案是正确的。
- 请参阅“EDXML”在这个XML模式
- 请参阅“SFAS158”这个XBRL架构
Answer 3:
首先,我要澄清, 我不是以英语为母语 ,所以我对英语语法的要求可以简单地是错误的。 如果你发现这样的错误,请让我知道,我会非常感激。
对于缩写最好的做法是避免首字母缩写词尽可能。 无论如何,这是不是这样的,因为缩写UNESCO
比全名更熟悉UnitedNationsEducationalScientificAndCulturalOrganization
。
然后,我觉得UNESCO
使得比更有意义Unesco
因为只是它更接近现实生活中的表格,以便更熟悉。 我遇到了一些麻烦搞清楚什么字Unesco
实际上意味着。
作为另一个例子,想想Arc
。 这听起来像一圈一圈的曲线,但在锈,这意味着Atomically Reference Counted
。 如果它被写的ARC
,至少读者会认识到,这个词是别人,而不是一种曲线的东西的缩写。
现代课程主要为人类的读者而写。 然后这些命名规则必须易读性 ,而不是机械加工或分析来设置。
从这个角度来看,我们通过使用失去了一些可读性Unesco
在UNESCO
的同时,获得什么。
而对于其他任何情况下,我认为只是跟着普通的英文缩写规则(或约定),是足以让大多数情况下实现了最佳可读性 。
Answer 4:
getUnescoProperties()
应该是最好的解决方案...
如果可能的话只需按照纯粹的camelCase
,当你有缩略词只是让他们大写在可能的情况,否则去camelCase
。
一般来说,在面向对象编程的变量应该与小写字母(开始lowerCamelCase
)和类应该大写字母(开始UpperCamelCase
)。
有疑问时只是走清纯camelCase
;)
parseXML
是好的, parseXml
也是camelCase
XMLHTTPRequest
应该是XmlHttpRequest
或xmlHttpRequest
没有路可走,随后大写首字母缩写,它是明确不明确所有的测试用例。
例如,你怎么看这个词HTTPSSLRequest
, HTTP + SSL
或HTTPS + SL
(这并不意味着什么,但...),在这种情况下,跟随骆驼约定,去httpSslRequest
或httpsSlRequest
,也许就不再漂亮,但它肯定是更清晰。
Answer 5:
要转换为驼峰匹配,也有谷歌的(几乎)确定性驼峰算法 :
名为的散文形式的开头:
- 短语转换为纯ASCII,并移除任何撇号。 例如,“穆勒的算法”可能变成“MUELLERS算法”。
- 除此结果进言,在空间分割和任何剩余的标点(通常连字符)。
- 建议:如果任何词已经在共同使用的常规骆驼情况下的外观,拆分成其组成部分(例如,“的AdWords”变成“广告词语”)这一点。 需要注意的是,如“iOS”其中一个字是不是真的在骆驼本身; 这违背任何约定。因此,这一建议并不适用。
- 现在小写的一切(包括首字母缩写),那么只有大写的第一个字符:
- ...每个字,以产生上骆驼情况下,或
- ...除了第一每个字,以得到较低的情况下,骆驼
- 最后,加入所有的话到一个单一的标识符。
需要注意的是原话的外壳几乎完全忽略不计。
在下面的例子中,“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:
目前我使用以下规则:
死刑案件的首字母缩写: XMLHTTPRequest
, xmlHTTPRequest
, requestIPAddress
。
骆驼情况下缩写: 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
,其通常显示为本地变量。
在编程世界,在自然语言缩略语都应该被视为词 ,原因是:
当我们编程中,我们应该命名变量无论是在风格的缩写或不缩写式。 所以,如果我们将其命名功能getUNESCOProperties,这意味着教科文组织是一个缩写(否则不应该是全部大写字母),但显然, get
和properties
都没有首字母缩写词。 所以,我们应该命名此函数或者gunescop或getUnitedNationsEducationalScientificAndCulturalOrganizationProperties,都是不可接受的。
自然语言是不断发展的,而今天的首字母缩写词将成为明天的话 ,但程序应该是独立的这一趋势,站在永远。
顺便说一下,在最投票的答案,IO是计算机语言的意义(代表投入产出)的缩写,但我不喜欢这个名字,因为我觉得缩写(计算机语言)应只用于命名局部变量,但顶层类/函数,所以输入 - 输出应改为使用IO的
文章来源: Acronyms in CamelCase [closed]