参数命名:文件名还是文件名?


72

我在命名*上尽量做到语法正确。我一直用filename代替fileName。Java约定似乎也使用此方法,但FxCop更喜欢fileName

WikiPedia上对此进行讨论。我读得越多,我就越觉得自己是对的(这很平常!:))。有人能给出确定的答案吗?还是仅仅是主观的?

*我只是希望这篇文章中没有语法错误!


匿名下注者再次罢工。这是一个编程问题,它是一个没有明显的,一致的答案的问题,为什么要反对呢?我会投票赞成。
阿诺德·斯彭斯2009年

可能是因为。没有真正的答案可以完全满足这个问题。
shoosh

1
@shoosh:尽管讨论很好……
Kredns

没有明显答案的问题可以产生一些很好的输入。
阿诺德·斯彭斯

但是,Java和.Net的命名约定不同,也许在其中添加.Net标记是适当的。
安德·特纳

Answers:


13

可以用英文写“文件名”或“文件名”。当您将其转换为编码时,可以大写“ n”或不大写“ n”(假设使用camelCase或PascalCase)。

顺便说一句,您确实在这个问题上犯了语法错误-具有讽刺意味的是,在您表达希望没有语法错误的那句话中。您说:“我只是希望这篇文章中没有语法错误!” 但是“错误”是复数形式,因此“有”的“是”表示主语-动词的分歧。

*我只是希望这篇文章没有语法错误!


43

对于字段和参数,建议使用小写驼峰格式

范例1

fileName // for fields, parameters, etc.
FileName // for properties, class names, etc.

通常,fileName用于而不是filename; 您可以通过阅读Microsoft创建的开放源代码的源代码(例如Enterprise Library)进行验证

原因

  1. 这样做的主要目的是在这种情况下名称更易读。
  2. 同样,当在同一方法(类..)中使用多个参数(字段,变量..)并使用相同的前缀“文件”时,这种方法也会增加一致性,如下所示:
  3. ...还有其他一些原因,但是它们更加主观。

范例2

fileName, fileSize... // instead of filename AND filesize

另请参阅

有关一整套命名约定规则,建议您阅读本书:

并在IDesign.net上检查一些东西


5
@Koistya-您错过了重点,发布者询问的是“文件名”(1个字)是否比“文件名”(2个字)好,而不是在问是否使用驼峰式大小写。
Dan C.

1
@丹,我不知道。即使分开大小写,也建议使用“ fileName”命名参数,而不是“ filename”。
康斯坦丁·塔尔库斯

2
@Koistya:您仍然没有理由为什么我们应该使用fileName而不是filename。但是,信息汇编很好。
Treb

我总是想知道连接的约定是什么,例如PathandFileName或PathAndFileName?
罗布

1
@Koistya:如果您将驼峰大小写分开(因为filename和fileName都符合驼峰大小,这取决于您对单词的看法),那么我们需要一个很好的理由来选择一个。这些标准没有提到“文件名”还是“文件名”,因此它们在这里没有位置(尽管..
Dan C.

26

'filename'假设此词描述的是单个对象(例如“牛”或“椅子”),则
'fileName'假定这是一个复杂的对象,存在一个名为file的对象,并且该对象描述了该文件的名称。

两种哲学方法可供选择。


11

就我而言,

thisIsMuchMoreReadablereadingthis


30
但是ReadAble比Readable更具可读性吗?这有点接近要点。Read是一个单词,Able是一个单词,Readable是一个单词。因此,假设每个单词的首字母都大写,我们应该怎么写呢?
jalf

15
SoIBetYouThinkThisIsSuperReadable,well_I_actualy_think_you_are_wrong
David Lehavi 09年

1
但这不是OP所关心的。
塞巴斯蒂安·马赫

9

我认为这里的答案涉及两个问题。

  • “文件名”与“文件名”(“名称”应为单独的单词)

  • “文件名”与“文件名”(首字符应为小写)。

在大多数情况下,我更喜欢将此单词视为一个完整的单词“文件名”。我也更喜欢以小写字母开头的变量/方法,以便于代码完成菜单导航。

我想骆驼大小写的问题也在这里,我认为应该用来区分多词名称。


2
从wiktionary(en.wiktionary.org/wiki/filename)看来,filename是一个词,所以我将使用filenameFilename取决于它是否公开。还有一个替代的拼写,文件名,它将是fileNameFileName,但是我更喜欢第一种拼写。
Svish 2010年

4

FxCop是自动化工具不是显而易见的答案吗?它认识到“名称”是一个单词,因此建议以大写字母N开头。我们碰巧知道“文件名”也是一个单词,因此只有第一个F应该大写。


2

这里不可能有对与错。

这纯粹是主观的,并且与您所在的社区完全相关。如果FxCop和StyleCop以及您经常遇到的.net代码正在使用fileName,则使用fileName。如果正在使用其他东西,则使用任何东西。

您的首要任务应该是与您自己的代码中的模式一致,然后与您的社区一致。

在这种特殊情况下,.net Reflector使用fileName显示了很多.net代码,因此我个人会采用该模式。

如果您在Java世界中并且运行PMD和checkstyle,并且它们的api频繁使用文件名,那么我会同意的。

除了维基百科的命名文章外,还有Kernighan和Pike撰写的《编程实践》。它的第一章涉及许多命名和代码一致性问题。


2

文件名〜电子存储的计算机文件的标识名,符合操作系统的限制,例如长度或字符限制。

在过去,这被认为是两个词,但现在被定义为一个词,因此

var filename = ......

如果是两个字的话

var fileName = ....


1
好的答案,但这是谁的定义?例如,文件名不是以下单词:Merriam Webster。除非字典将它作为一个单词,否则按照大多数人会接受的一般标准,我将其作为两个单词。在这种情况下,它应该是fileName或FileName。
Tolga '18

0

如果您正在编写c / c ++,则很容易使用人们可以实际阅读的名称。即文件名是好的,yet_another_file_name也是如此(假设您不认为文件名是一个适当的英文单词-我通常会这样做)。

查看Google编码标准

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.