为两个具有相同通用名称的不同文件提供不同名称是一种不好的做法吗?


18

为两个通用目的相同的名称完全不同的文件将它们分成不同的目录,这是一种不好的做法吗?

<script src="client_scripts/app/player_stats/generator.js"></script>
<script src="client_scripts/app/coach_settings/generator.js"></script>

我想使文件名简短,并且两个文件具有相同的通用目的,但不完全相同。我不确定在专业编程环境中这是否会被视为不良做法。我想知道在这种情况下的最佳做法。

或者,以牺牲名称的简短长度为代价,我可以使用:

<script src="client_scripts/app/player_stats/player_stats_generator.js"></script>
<script src="client_scripts/app/coach_settings/coach_settings_generator.js"></script>

7
更长的名字!:)
marko

2
statsgen.jssettingsgen.js
Kroltan 2014年

1
干!(即简称)
Paul Draper 2014年

1
干净代码(即更长的有意义的名称)
Songo 2014年

Answers:


36

考虑以下两种选择的成本/收益比:

  1. 重用同一个名称会引起混乱或命名冲突吗?可能不是,因为它们位于不同的文件夹中。名称“ player_stats / generator.js”等效于“ player_stats_generator.js”。但是,如果将来您看到将js文件合并到一个目录中的原因(部署?我不知道),那么这应该是给出唯一名称的一个很好的指示。

  2. 使用较长的名称会涉及很多无关的输入吗?可能不会。许多JS IDE不仅可以为您自动完成项目中的文件名,而且它也是一段代码,每个文件最多只能编写一次。这被输入大量的代码是类和函数的js文件,以及那些(希望)不冲突。

  3. 调试时,您会得到什么样的错误信息?如果最常见的错误报告是“第34行的错误<filename.js>”,请考虑给它们指定唯一的名称,因为仅在generator.js中接收到错误,然后尝试通过上下文确定是哪个生成器是一件麻烦事。


5
调试js通常会打印整个文件路径。
Bergi 2014年

1
@Bergi这取决于浏览器(和版本),IDE(如果有),错误记录框架等。
Avner Shahar-Kashtan 2014年

22

实际情况是,如果您的IDE在选项卡中显示文件名,则对每个文件使用相同的名称,则最终将显示所有显示相同名称的选项卡。那可能很烦人。我接手维护的一个项目遇到了这个问题,要打开15个选项卡非常痛苦,其中一半带有相同的文件名。

所以...使用更具描述性的名称。


1
如果文件具有相同的名称,大多数现代文本编辑器将在选项卡中显示路径。
kmiyashiro 2014年

当然,有时有必要使多个文件具有相同的名称(例如,在许多服务器上index.html)。我发现自己对那些难以确定与特定文件关联的路径的程序感到恼火。
2014年

1
@kmiyashiro-可能是这样,但是如果您打开了许多文件,则这些选项卡的大小(宽度)可以减小到几乎只看到文件名的程度。然后,您必须始终将鼠标悬停在每个选项卡上,并等待“工具提示”显示完整的路径/文件。如果您只打开了几个文件,并且只有极少数情况下出现重复的名称,则可以接受。但是文件很多,可能会很烦人。
凯文·费根

1
如果您打开的所有标签页都具有相同的名称,那么我将使用键盘命令切换到该文件,而不是尝试在包含唯一名称的一系列标签页中查找文件。
kmiyashiro 2014年

1
但是,使用更具描述性的名称可能会很烦人……当您some_super_long_descriptor_that_needs_more_description.js将其与some_super_long_descriptor_that_needs_more_cowbell.js
corsiKa

12

这里有一个明确的决定因素:(不要重复自己)。

每个文件名都不必相同。这就是路径。您能想象您的计算机上有多少个不同的系统或程序文件吗?如果每个人都必须有一个唯一的名字怎么办?在某些时候,我们只是使文件名成为路径的副本。

如果client_scripts > app > player_stats真的在上下文中对Javascript文件的最佳描述是generator,则其路径应为client_scripts/app/player_stats/generator.js

这个问题是在programmers.stackexchange.com/questions/ 250481。还有serverfault.com/questions/ 250481250481在程序员问题的上下文中是一回事,在服务器故障问题的上下文中则是另一回事。

路径(或URL)很好,因为它们是嵌套的标识符。让我们以这种方式使用它们:)


7

始终在短名称上使用描述性名称,除非它像数学常量或循环变量那样,其中所涉及语言的约定偏爱短名称。例如,如果您调用变量“ pi”并使它成为pi的一些适当的精确值,那么该名称就很好并且可以理解这一点。另一方面,如果您有一个生成器,它为Pi生成泰勒级数的项并将它们加起来近似为pi,则您可以将其称为“ taylorPiGenerator或类似名称”。

现在,好名声可以节省重构时间,甚至可以节省更糟的大量错误。

这些书清洁代码代码完成进入相当详细的原因和良好的命名的wherefores但他们绝不是唯一的来源。


这个答案似乎很好地适用于此特定示例,但并未解决一般性问题。
Paul Draper 2014年

3

这取决于您使用的技术。名称应标识项目,路径应标识上下文。我同意好命名很重要,但嘿,路径也是名称。但是从实际的角度来看,如果您使用的是Javascript之类的东西,则最好为最终商品保留更精确的名称。如果您正在使用考虑到这一点的工具(例如Python),推荐的方法是使用具有不同路径(模块,名称空间)的相同名称。如果您看一下Java,您还将找到具有相同名称和不同包的类。可以走得更远一点,说方法在类的上下文中被命名为动作,而我们在不同的类中具有相同的方法,它们本身可以被命名为相同的但放置在不同的包中。Python的禅宗说:

命名空间是一个很棒的主意-让我们做更多这些吧!

但是javascript有它的怪癖和特权,所以我建议您使用不同的名称(即使文件位于不同的路径中)。另外,您可能会在javascript中查找模块模式,这可以帮助您编写更简洁的代码:

    var playerStatsGenerator = player_stats.Generator();
    var coachSettingsGenerator = coach_settings.Generator();

您可以吃蛋糕也可以吃。

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.