我在我的代码和数据库字段名等中使用camelCase
,但最后有Id
的字段,它总是最终难以阅读。例如,itemId
,teacherId
,unitId
等。在这些情况下,我思考如何打破惯例,只是提高可读性写itemID, teacherID, or unitID
。ID,ID或ID?
你是做什么的,什么是处理这个问题的一般情况下,最好的做法?
我在我的代码和数据库字段名等中使用camelCase
,但最后有Id
的字段,它总是最终难以阅读。例如,itemId
,teacherId
,unitId
等。在这些情况下,我思考如何打破惯例,只是提高可读性写itemID, teacherID, or unitID
。ID,ID或ID?
你是做什么的,什么是处理这个问题的一般情况下,最好的做法?
我做我的感觉。总的来说,你最好的做法是错误地倾向于可读性和遵从某些抽象标准。
只要一致。
我用驼峰,也和如果名称以ID结尾我还用它。
Id
这是我对主观问题的主观答案。
虽然我已经标记为CW。
Id的问题是我如何看起来类似于非资本t。所以unitId是相当模糊的阅读 – 2009-04-23 01:59:00
在这种字体中它是相似的。虽然使用等宽字体(我尝试在任何地方使用我的代码),但它没有。 – 2009-04-23 02:20:34
或小写字母l。即使是等宽字体,也可能存在问题。 – 2009-04-23 02:24:38
我更喜欢使用ID和我们公司的标准也ID,并且ID。如果您发现阅读起来更方便,我不认为使用ID有问题。编译器不关心:)我在我的架构Id列中使用相同的约定。
我认为可读性是最重要的,如果它要使它更加容易阅读应该重写你的约定。我认为,如果你无法轻易读懂它(如同我们程序员讨厌违反约定和协议),那么它的优势就超过了坚持枪支/惯例的优点。
ID,至于标识符。微软建议的命名约定表明这是推荐的做法,并且使用代码分析进行编译将支持这一点。 如果代表两个单词分别以I和D开始,并且您不应使用以小写字母开头但以参数形式开头的名称,则可以使用ID。
ID代表“识别数字”。可以为任何事物创建首字母缩略词。 ;) – 2009-04-23 02:25:26
同意。每个非平凡的项目都应该使用代码分析(FxCop),它将建议“Id”而不是“ID”。 – 2009-04-23 02:38:46
不要紧,只要你将你整个程序一致。
这就是说,我会去“Id”。
下面是我做的一个样本。
id
userId
getUserId
关键是一致。
我在所有的表名中都使用了下划线,所以user_id。即使id是独立的,它也是全部小写的。
不同的语言有不同的指导原则。对于.NET,您可能会读取Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries。对于Java,您可能会阅读Code Conventions for the Java Programming Language。
Id是一个缩写,而不是缩写词,所以我把它称为“Id”。用户界面是首字母缩略词,首字母缩略词 - 短小的,无论如何 - 都会被大写:“用户界面”。
我其实更喜欢“ID”。但是,正如大家所说,一致性是最重要的。
史蒂夫
在Machine SUIF,麦克·史密斯和格伦·霍洛韦严格执行一个大写字母,标志着一个新字时约定。因此,即使CPS是首字母缩写词,它是transformToCps
而不是transformToCPS
。我发现从长远来看,他们的方法比我们在中所做的更好,我们通常对ID和CPS等案例都做了大写。
我要在这里投票,但我不在乎!
显然是id。来自深层的想法!
FxCop/Code Analysis会将ID标记为坏缩写,因此如果您想避免禁用规则,您可能会因此而符合并使用Id。但是,只要你保持一致,这一点并不重要,正如其他人指出的那样。
只要您在自己的程序中保持一致,就可以随心所欲。 (如果你在一个团队工作,你应该遵循团队的规则或设置一些)。
没有提到的一点是获得一个好字体的重要性。这将创造奇迹,你的程序的可读性,它可能是你的约定问题部分的字体问题:
如果你不能轻易地从LD区分标识(Id and ld)
,你应该改变字体和字体可能尺寸也是。我个人喜欢Consolas。
我同意其他答案,最重要的是要保持一致。
我想补充一点,如果没有为您的特定代码库建立标准,那么您应该遵循由您的语言或平台设置的约定。在Java中,首字母缩写词和其他大写单词是小写形式标识符:
id
url
getId()
setUrlParameters()
在Objective-C,这是相反的。你可能有一个小写的“ID”或“网址”变量,但你也有类如:
NSURL
NSURLRequest
所以在对象 - 我会选择的方法等名称:
setURLParameters:
这是发音为“眼睛”,而不是“身份证,身份证,自我和超我”,所以身份证,而不是身份证。无论如何,这是我的投票。由于它的发音方式,它是一个缩写,而不是缩写,这一事实并不重要。它的发音就像是一个缩写词,所以也可以这样键入。哦,骆驼案是计算史上最糟糕的主意。:)
“Id”不明确。它是人类心灵的“自我”/“超我”模式的一部分吗?可能不是:你可能试图缩写一个单词,如“身份证”或“身份证”或“标识符”。
通过确定您的意思,然后不会缩写来消除歧义(和套管问题)。
数据库列和对象属性中的ID。编号参数:
this.ID == id
CW梦想只持续几秒钟。 – OscarRyz 2009-04-23 01:23:48
c'est la vie等等;-) – Shog9 2009-04-23 01:27:21