我对 CamelCase 有疑问。假设您有以下缩写:Unesco = United Nations Educational, Scientific and Cultural Organization.
您应该写:unitedNationsEducationalScientificAndCulturalOrganization
但是如果您需要写首字母缩略词怎么办?像这样的东西:
getUnescoProperties();
这样写对吗? getUnescoProperties()
或getUNESCOProperties();
最佳答案
从已接受的答案中可以看到对 Microsoft advice 的合理批评。
- 根据字符数量,首字母缩略词/缩写词的处理方式不一致:
playerID
vsplayerId
vsplayerIdentifier
。- 如果两个字母的首字母缩略词出现在标识符开头,是否仍应大写的问题:
USTaxes
与usTaxes
- 难以区分多个首字母缩略词:
- 即
USID
与usId
(或维基百科示例中的parseDBMXML
)。
所以我将发布这个答案作为已接受答案的替代方案。所有首字母缩略词应一致对待;首字母缩略词应像其他单词一样对待。 Quoting Wikipedia:
...some programmers prefer to treat abbreviations as if they were lower case words...
所以回复:OP的问题,我同意接受的答案;这是正确的:getUnescoProperties()
但我想我会在这些例子中得出不同的结论:
美国税
→usTaxes
玩家 ID
→playerId
如果您认为两个字母的缩写词应该像其他缩写词一样对待,请投票支持这个答案。
驼峰命名法是一种约定,而不是规范。所以我猜民意是规则。
(编辑:删除投票应该决定这个问题的建议;正如@Brian David所说;Stack Overflow不是一场“人气竞赛”,这个问题被关闭为“基于意见”)
尽管许多人更喜欢将缩略词视为其他单词,但更常见的做法可能是将缩略词全部大写(即使这会导致“令人厌恶”)
- 请参阅此 XML schema 中的“EDXML”
- 请参阅此 XBRL schema 中的“SFAS158”
其他资源:
- 请注意,有些人会区分缩写词和首字母缩略词
- 注意 Microsoft 指南区分了两个字符的缩写词和“长度超过两个字符的缩写词”
- 请注意,有些人建议完全避免使用缩写词/首字母缩略词
- 请注意,有些人建议完全避免使用驼峰命名法/帕斯卡命名法
- 请注意,有些人将“一致性”区分为“看起来内部不一致的规则”(即对待两个字符的首字母缩写词与三个字符的首字母缩略词不同);有些人将“一致性”定义为“一致地应用相同的规则”(即使规则内部不一致)
- Framework Design Guidelines
- Microsoft Guidelines
关于language-agnostic - 采用驼峰命名法的首字母缩略词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526107/