我在我的代码和数据库字段名称等中使用camelCase
,但是对于末尾有Id
的字段,它总是难以阅读。例如,itemId
,teacherId
,unitId
等。在这些情况下,我会考虑违反惯例并撰写itemID, teacherID, or unitID
,以提高可读性。
你做了什么以及处理这个问题的一般最佳做法是什么?
答案 0 :(得分:59)
Id是缩写,而不是首字母缩略词,所以我将其称为“Id”。 UI是一个首字母缩略词,而缩写词 - 短篇小说 - 无论如何 - 获得大写:“UI”。
答案 1 :(得分:24)
以下是我的工作样本。
id
userId
getUserId
关键是保持一致。
答案 2 :(得分:13)
我其实更喜欢“ID”。但是,正如大家所说,一致性是最重要的事情。
史蒂夫
答案 3 :(得分:11)
我做我的感觉。一般而言,您的最佳做法是错误地支持可读性而不是遵守某些抽象标准。
保持一致。
答案 4 :(得分:9)
Id,与标识符一样。 Microsoft建议的命名约定表明这是推荐的做法,并且使用代码分析进行编译将支持这一点。 你会使用ID,如果它代表分别以I和D开头的两个单词,你真的不应该使用以小写字母开头但在参数中的名字。
答案 5 :(得分:6)
只要你在整个程序中保持一致就无关紧要。
话虽如此,我会选择“Id”。
答案 6 :(得分:5)
我也使用camelcase,如果名称以Id结尾,我也会使用它。
答案 7 :(得分:3)
我在所有的表名中都使用了下划线,所以user_id。即使id是独立的,它也都是小写的。
答案 8 :(得分:3)
编号
这是我对主观问题的主观回答。
我已将此标记为CW。
答案 9 :(得分:2)
我将在这里投票,但我不在乎!
显然是id。来自深层的想法!
答案 10 :(得分:2)
它的发音是“眼睛消失”,而不是“在id,ego和superego中的id”,所以ID,而不是Id。无论如何,这是我的投票。由于它的发音方式,它是缩写而不是首字母缩略词这一事实无关紧要。它的发音好像它是一个缩写词,所以它也可以这样输入。哦,骆驼案是计算史上最糟糕的主意。:)
答案 11 :(得分:1)
我认为可读性至关重要,如果要让它更容易阅读,那么应该覆盖你的惯例。如果你不能轻易阅读(我们程序员讨厌破坏约定和协议),我认为缺点超过了坚持你的枪/惯例的优点。
答案 12 :(得分:1)
在Machine SUIF中,迈克史密斯和格伦霍洛威严格执行大写字母标记新单词的案例约定。因此,即使CPS是首字母缩略词,它是transformToCps
而不是transformToCPS
。我发现从长远来看,他们的方法比我们在Quick C--中所做的更好,我们通常会为ID和CPS等案例做全部上限。
答案 13 :(得分:1)
FxCop / Code Analysis会将ID标记为错误的缩写,因此如果您想避免禁用规则,您可能会因此而符合并使用Id。但同样,只要你保持一致,这无关紧要,正如其他人所指出的那样。
答案 14 :(得分:1)
只要您在自己的计划中保持一致,无论您感到满意。 (如果您在团队中工作,则应遵循团队规则或设置一些规则)。
未提及的一点是获得好字体的重要性。这会对您的程序可读性产生奇迹,可能是您的约定问题部分是字体问题:
如果您无法轻易区分 Id 与 ld (Id and ld)
,则应更改字体和字体大小。就个人而言,我喜欢康索拉斯。
答案 15 :(得分:1)
我同意其他答案,最重要的是保持一致。
我要补充一点,如果您的特定代码库没有既定标准,则应遵循您的语言或平台设置的约定。在Java中,首字母缩略词和其他大写单词对于标识符没有大写:
id
url
getId()
setUrlParameters()
在Objective-C中,情况正好相反。您可能有一个小写的“id”或“url”变量,但您也有类,如:
NSURL
NSURLRequest
所以在Obj-C中我会选择一个方法名称,如:
setURLParameters:
答案 16 :(得分:1)
数据库列和对象属性中的ID。参数中的id:
this.ID == id
答案 17 :(得分:0)
不同的语言有不同的指导方针。对于.NET,您可以阅读Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries。对于Java,您可以阅读Code Conventions for the Java Programming Language。
答案 18 :(得分:0)
我更喜欢使用Id,而在我们公司,标准也是Id over ID。如果您觉得使用ID更容易阅读,我认为没有问题。编译器并不关心:)我在架构Id列中使用相同的约定。
答案 19 :(得分:0)
“Id”含糊不清。它是人类心灵的“自我”/“超我”模型的一部分吗?可能不是:您可能正在尝试缩写单词,例如“身份”或“标识”或“标识符”。
通过决定你的意思去除歧义(和套管问题),然后不要缩写。