ID,ID还是Id?

时间:2009-04-23 01:13:35

标签: variables naming-conventions

我在我的代码和数据库字段名称等中使用camelCase,但是对于末尾有Id的字段,它总是难以阅读。例如,itemIdteacherIdunitId等。在这些情况下,我会考虑违反惯例并撰写itemID, teacherID, or unitID,以提高可读性。

你做了什么以及处理这个问题的一般最佳做法是什么?

20 个答案:

答案 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”含糊不清。它是人类心灵的“自我”/“超我”模型的一部分吗?可能不是:您可能正在尝试缩写单词,例如“身份”或“标识”或“标识符”。

通过决定你的意思去除歧义(和套管问题),然后不要缩写