7

在我的工作组中有一个关于 JavaScript 编码的讨论。有些人认为我们应该使用长名称以获得更好的可读性;其他人认为短名称应该有利于相同的在线位。

通常,它与编码约定有关。一方面认为诸如“fAutoAdjustWidth”之类的标识符是可以的,而另一些则更喜欢“fAtAjtW”。

那么,更好的方法是什么?我们是否应该为了性能而牺牲可读性?

4

12 回答 12

23

使其可读,如果您觉得生成的 JS 文件太大,请在部署生产版本之前使用许多 JS 压缩器之一,同时维护具有长名称的开发版本。

顺便提一句。如果您真的担心带宽,请使用mod_deflate

于 2009-03-22T13:38:23.457 回答
8

如果您担心线路上的位,您可以随时在您的代码上运行压缩程序。然后,您可以使用长名称进行开发,并且可以使用具有同等功能的小得多的文件进行发布。Yahoo YUI Compressor看起来像是进行空白压缩和令牌压缩。

于 2009-03-22T13:38:10.760 回答
3

这些人是否提倡不在他们的代码中写注释?变量名称要完全清晰且具有描述性。

于 2009-03-22T13:57:37.763 回答
3

而其他人更喜欢“fatAjtW”

即使“在线比特”是一个问题(事实并非如此),这样的命名约定也会使代码在项目工作的第一周后完全无法维护。

阅读代码几乎是不可能的,在编写代码时,人们将不断地考虑诸如“'fAutoAdjustWidth' 缩写为 'fAtAjtW' 还是 'fAutAtW'?”之类的事情。在编写代码时要付出巨大的精神负担,这将导致生产力大大降低。

最重要的是,在 Javascript 中,每个输入错误的名称都会获得一个新变量,这一事实加剧了问题!

于 2009-03-22T14:23:20.870 回答
2

使用大变量名,因为它们对程序员有帮助。

要通过网络节省位,请在将 Javascript 部署到生产服务器之前将其缩小。 Dean Edwards 的打包程序有一个压缩变量名的选项,这对您来说似乎是两全其美的选择。

于 2009-03-22T17:30:39.157 回答
2

使用足以很好地描述变量和函数的长名称。

许多人需要短名称的原因之一是使文件更小,但您可以在在线上传时通过工具来做到这一点。

于 2009-03-22T13:56:15.147 回答
2

也许担心的不是线路上的位,而是读取和重新/查看代码的开销。

我倾向于在函数内部使用短名称,并尽可能使函数名称尽可能长,但在不失去有用意义的情况下尽可能短。

毫无疑问,这是一种权衡。这取决于您是希望您的代码类似于自然语言还是更加隐式和紧凑。

一些前缀变量名称以将上下文信息注入其中。我说,如果有必要,IDE 应该提供注入功能,例如通过上下文符号在代码上进行可视化覆盖。

下一版本的 Visual Studio 将通过深入到编辑器本身的细粒度可扩展性机制,使此类注释操作变得更加容易。我还没有使用 Visual Studio 来编辑 Javascript。

我现在看到您的担忧确实是空间权衡。这永远不应该成为问题。总是总是喜欢可读性而不是在线上的位,尤其是。正如其他评论员所指出的那样,因为存在压缩。

我唯一要补充的是上面的内容,即有时使用紧凑的名称而不是过长的名称更容易理解。但是,要正确命名短名称更难。根据我的经验,长名称更容易、更快捷。

短名称的原因不应该只是数据压缩认知效率。有效的是个人的。

于 2009-03-22T14:01:33.790 回答
1

一方面认为诸如“fAutoAdjustWidth”之类的标识符是可以的,而另一些则更喜欢“fAtAjtW”。

'fAtAjtW' 是一种无法阅读、无法打字的恐怖。说真的,有人喜欢吗?搞笑且难以记住——是“AtAjt”还是“AutAdj”……?

'autoAdjustWidth' 将是一个合适的完整属性名称。(我根本不相信 'f' 前缀表示法,但这是另一个问题。)有时你想要一个短命变量的名字很短(例如,一个小循环中的临时变量),在这种情况下我'会亲自去'var aaw'而不是上面的噩梦。

至于性能,不会有任何区别。JavaScript 不关心变量名称的长度,并且假设您在将脚本压缩到浏览器的途中,压缩将消除较短名称的任何传输优势。

于 2009-03-22T17:22:40.220 回答
1

我强烈建议不要使用短标识符。仅阅读您的示例就可以看出,当使用 fAtAjtW 之类的名称时,突然需要更多文档。在某些时候,它会变得几乎无法维护,这只是为了节省一些要传输的字节。

如果考虑“短”名称的唯一原因是使生成的脚本更小,从而节省一些带宽,我建议使用 gzip 压缩,这将为您节省超过几个字节的标识符。

于 2009-03-22T13:47:15.683 回答
1

谁认为“fAtAjtW”更可取,是在他们的编程中使用某种药理学方法。fAutoAdjustWidth 非常精细,非常谨慎。Javascript 库不使用 fAtAjtW 之类的名称是有原因的。如果您担心尺寸,那么您的担心可能是错误的。但是,我建议使用某种缩小器。但是,也就是说,不要使用太长的时间;可能超过 25-30 个字符的任何内容都有些远。

于 2009-03-22T23:30:04.737 回答
0

在不影响代码可读性的情况下使用较小的名称。更大的名字很好,但尽量只在确实让自己和他人更容易理解的地方使用它们。最后(如其他答案所述)缩小您的代码,和/或打开某种服务器压缩机制,如 apache 的 mod_gzip 或 mod_deflate 以减少流经线路的位数。

话虽如此,我会优先考虑可读性而不是变量名的紧凑性。

于 2009-03-22T13:46:22.050 回答
0

长而描述性的名称。

并尝试使方法尽可能独特。这有助于导航。如果您想查找特定方法的所有用法,则与具有相同名称的另一个方法发生冲突的可能性较小。

现代 Javascript IDE 还可以进行方法重构(参见:http ://blue-walrus.com/2013/08/review-javascript-ides/ )。如果方法被调用相同,这将非常困难。

于 2014-05-08T13:22:57.843 回答