2009-04-23 78 views
22

我在我的代码和数据库字段名等中使用camelCase,但最后有Id的字段,它总是最终难以阅读。例如,itemIdteacherIdunitId等。在这些情况下,我思考如何打破惯例,只是提高可读性写itemID, teacherID, or unitIDID,ID或ID?

你是做什么的,什么是处理这个问题的一般情况下,最好的做法?

回答

10

我做我的感觉。总的来说,你最好的做法是错误地倾向于可读性和遵从某些抽象标准。

只要一致。

+0

CW梦想只持续几秒钟。 – OscarRyz 2009-04-23 01:23:48

+0

c'est la vie等等;-) – Shog9 2009-04-23 01:27:21

5

我用驼峰,也和如果名称以ID结尾我还用它。

3

Id

这是我对主观问题的主观答案。

虽然我已经标记为CW。

+2

Id的问题是我如何看起来类似于非资本t。所以unitId是相当模糊的阅读 – 2009-04-23 01:59:00

+0

在这种字体中它是相似的。虽然使用等宽字体(我尝试在任何地方使用我的代码),但它没有。 – 2009-04-23 02:20:34

+0

或小写字母l。即使是等宽字体,也可能存在问题。 – 2009-04-23 02:24:38

0

我更喜欢使用ID和我们公司的标准也ID,并且ID。如果您发现阅读起来更方便,我不认为使用ID有问题。编译器不关心:)我在我的架构Id列中使用相同的约定。

1

我认为可读性是最重要的,如果它要使它更加容易阅读应该重写你的约定。我认为,如果你无法轻易读懂它(如同我们程序员讨厌违反约定和协议),那么它的优势就超过了坚持枪支/惯例的优点。

9

ID,至于标识符。微软建议的命名约定表明这是推荐的做法,并且使用代码分析进行编译将支持这一点。 如果代表两个单词分别以I和D开始,并且您不应使用以小写字母开头但以参数形式开头的名称,则可以使用ID。

+0

ID代表“识别数字”。可以为任何事物创建首字母缩略词。 ;) – 2009-04-23 02:25:26

+0

同意。每个非平凡的项目都应该使用代码分析(FxCop),它将建议“Id”而不是“ID”。 – 2009-04-23 02:38:46

6

不要紧,只要你将你整个程序一致。

这就是说,我会去“Id”。

21

下面是我做的一个样本。

id 
userId 
getUserId 

关键是一致。

3

我在所有的表名中都使用了下划线,所以user_id。即使id是独立的,它也是全部小写的。

43

Id是一个缩写,而不是缩写词,所以我把它称为“Id”。用户界面是首字母缩略词,首字母缩略词 - 短小的,无论如何 - 都会被大写:“用户界面”。

12

我其实更喜欢“ID”。但是,正如大家所说,一致性是最重要的。

史蒂夫

1

Machine SUIF,麦克·史密斯和格伦·霍洛韦严格执行一个大写字母,标志着一个新字时约定。因此,即使CPS是首字母缩写词,它是transformToCps而不是transformToCPS。我发现从长远来看,他们的方法比我们在​​中所做的更好,我们通常对ID和CPS等案例都做了大写。

2

我要在这里投票,但我不在乎!

显然是id。来自深层的想法!

1

FxCop/Code Analysis会将ID标记为坏缩写,因此如果您想避免禁用规则,您可能会因此而符合并使用Id。但是,只要你保持一致,这一点并不重要,正如其他人指出的那样。

1

只要您在自己的程序中保持一致,就可以随心所欲。 (如果你在一个团队工作,你应该遵循团队的规则或设置一些)。

没有提到的一点是获得一个好字体的重要性。这将创造奇迹,你的程序的可读性,它可能是你的约定问题部分的字体问题:

如果你不能轻易地从LD区分标识(Id and ld),你应该改变字体和字体可能尺寸也是。我个人喜欢Consolas。

1

我同意其他答案,最重要的是要保持一致。

我想补充一点,如果没有为您的特定代码库建立标准,那么您应该遵循由您的语言或平台设置的约定。在Java中,首字母缩写词和其他大写单词是小写形式标识符:

id 
url 
getId() 
setUrlParameters() 

在Objective-C,这是相反的。你可能有一个小写的“ID”或“网址”变量,但你也有类如:

NSURL 
NSURLRequest 

所以在对象 - 我会选择的方法等名称:

setURLParameters: 
2

这是发音为“眼睛”,而不是“身份证,身份证,自我和超我”,所以身份证,而不是身份证。无论如何,这是我的投票。由于它的发音方式,它是一个缩写,而不是缩写,这一事实并不重要。它的发音就像是一个缩写词,所以也可以这样键入。哦,骆驼案是计算史上最糟糕的主意。:)

0

“Id”不明确。它是人类心灵的“自我”/“超我”模式的一部分吗?可能不是:你可能试图缩写一个单词,如“身份证”或“身份证”或“标识符”。

通过确定您的意思,然后不会缩写来消除歧义(和套管问题)。

1

数据库列和对象属性中的ID。编号参数:

this.ID == id