gal*_*007 226 camelcasing coding-style acronym
我对CamelCase有疑问.你有这个缩写:Unesco = United Nations Educational, Scientific and Cultural Organization.
你应该写: unitedNationsEducationalScientificAndCulturalOrganization
但是如果你需要写首字母缩略词怎么办?就像是:
getUnescoProperties();
Run Code Online (Sandbox Code Playgroud)
用这种方式写它是对的吗? getUnescoProperties() OR getUNESCOProperties();
The*_*Pea 288
从接受的答案中对微软的建议有合理的批评.
playerIDVS playerIdVS playerIdentifier.USTaxes VS usTaxesUSIDvs usId(或parseDBMXML维基百科的例子).所以我会发布这个答案作为接受答案的替代方案.投票可以决定.所有的首字母缩略词都应该得到一致的处理; 首字母缩略词应该像任何其他词一样对待.引用维基百科:
......有些程序员喜欢将缩写视为小写单词...
所以我重申:OP的问题,我同意接受的答案; 这是对的:getUnescoProperties()
但我想我会在这些例子中得出不同的结论:
US Taxes → usTaxesPlayer ID → playerId如果您认为两个字母的首字母缩略词应该像其他缩略语一样对待,那么请投票给出这个答案.
Camel Case是一种约定,而不是规范.所以我猜流行的意见规则.
在现有代码或标记中搜索"流行"答案时,可能接受的答案是正确的.
Apo*_*ARE 176
微软撰写的一些指导原则camelCase是:
使用首字母缩略词时,请使用Pascal case或camel case作为长度超过两个字符的首字母缩略词.例如,使用
HtmlButton或htmlButton.但是,您应该将仅包含两个字符的首字母缩写词大写,例如System.IO代替System.Io.不要在标识符或参数名称中使用缩写.如果必须使用缩写,请将camel case用于包含两个以上字符的缩写,即使这与单词的标准缩写相矛盾.
加起来:
当你使用两个字符长的缩写或首字母缩略词时,将它们全部放在大写字母中;
当首字母缩略词长于两个字符时,请为第一个字符使用大写字母.
所以,在你的具体情况下,getUnescoProperties()是正确的.
Eon*_*nil 21
首先,我必须澄清我不是母语为英语的人,所以我对英语语法的主张可能是错误的.如果您发现此类错误,请告诉我,我将非常感激.
首字母缩略词的最佳实践是尽可能避免使用首字母缩略词.无论如何,情况并非如此,因为首字母缩略词UNESCO比全名更熟悉UnitedNationsEducationalScientificAndCulturalOrganization.
然后,我认为UNESCO更有意义,Unesco因为它更接近真实生活形式,因此更加熟悉.我弄清楚这个词Unesco究竟意味着什么.
作为另一个例子,想一想Arc.这听起来像一个圆圈周围的曲线,但在Rust中,这意味着Atomically Reference Counted.如果它被写成ARC,至少读者会认识到这个词是其他东西的缩写,而不是一种曲线.
现代节目主要面向人类读者.然后必须为人类可读性而不是机器处理或分析设置这些命名规则.
从这个角度来看,我们通过使用Unescoover UNESCO而失去了一些可读性.
对于任何其他情况,我认为仅仅遵循简单的英语缩写规则(或惯例)就足以满足大多数情况下的最佳可读性.
luk*_*k_z 15
getUnescoProperties() 应该是最好的解决方案......
如果可能的话,只要遵循纯粹的camelCase,当你有缩写时,只要在可能的情况下让它们大写,否则就去camelCase.
通常在OO编程变量中应以小写字母(lowerCamelCase)开头,而类应以大写字母(UpperCamelCase)开头.
如果有疑问,只需要纯粹camelCase;)
parseXML很好,parseXml也是camelCase
XMLHTTPRequest对于所有测试案例,它应该是XmlHttpRequest或者xmlHttpRequest没有办法与随后的大写首字母缩略词一起使用,它绝对不明确.
例如,你如何阅读这个词HTTPSSLRequest,HTTP + SSL或者HTTPS + SL(除了......之外没有任何意义),在这种情况下遵循骆驼案例约定,httpSslRequest或者httpsSlRequest,或许它不再是好的,但它肯定更清楚.
ser*_*inc 13
要转换为CamelCase,还有谷歌(几乎)确定性的Camel案例算法:
从名称的散文形式开始:
- 将短语转换为纯ASCII并删除任何撇号.例如,"Müller算法"可能成为"Muellers算法".
- 将此结果划分为单词,拆分空格和任何剩余的标点符号(通常为连字符).
- 推荐:如果任何单词已经具有常规使用的传统驼峰外观,请将其拆分为其组成部分(例如,"AdWords"变为"广告词").请注意,诸如"iOS"之类的单词本身并不是真正的驼峰; 它违反任何惯例,因此该建议不适用.
- 现在小写所有内容(包括首字母缩略词),然后只大写第一个字符:
- ......每一个字,产生上骆驼的情况,或
- ......除了第一个词之外的每个词,以产生较低的骆驼案例
- 最后,将所有单词连接成一个标识符.
请注意,原始单词的大小几乎完全被忽略.
在以下示例中,"XML HTTP请求"正确转换为XmlHttpRequest,XMLHTTPRequest不正确.
在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 = [
// ...
];
Run Code Online (Sandbox Code Playgroud)