服务器端Javascript最佳实践?

时间:2009-11-30 12:42:11

标签: javascript coding-style rhino serverside-javascript

我们有一个基于Java的CMS,它有服务器端JS的Mozilla Rhino。目前JS代码库很小但正在增长。在为时已晚并且代码变得非常混乱之前,我想介绍一些最佳实践和编码风格。

显然名称空间控制非常重要。但其他最佳实践如何 - 尤其是Java程序员?

5 个答案:

答案 0 :(得分:20)

以下是前线的一些提示:

  • 与Java一样,在Doxygen / JsDoc样式中使用docblocks作为函数
  • 单元测试。个人喜欢JsTestDriver,因为它也可以从CI服务器自动执行。
  • 使用JSLint。它会挑剔不良代码
  • 考虑使用Google Closure Compiler。它会挑选像JSLint这样的代码,但它可以帮助发现糟糕的文档块等。
  • 确保团队中的每个人都了解闭包的工作原理。否则会导致头痛
  • 正如您所提到的,名称空间非常重要,特别是如果您希望您的代码与其他JS库(var myns = myns || {};)一起使用
  • 就个人而言,我发现使用一个提供OOP帮助程序的库,如类等等。你可以使用原型继承,但这种方式通常有点棘手。

答案 1 :(得分:3)

我会看CommonJS(以前称为ServerJS)。这是一项正在进行的工作,但它们有一个标准化的模块系统,有多个实现。已经有一些有用的库写入CommonJS规范,如Narwhal

答案 2 :(得分:2)

正如道格拉斯·克罗克福德所说,JavaScript是世界上最被误解的编程语言。虽然很多人不知道,但是有一种正确的方式来编写JavaScript代码。我毫不怀疑,如果你让Java开发人员在了解如何编写优秀的JavaScript之前开始编码,那么你将遇到严重的麻烦。

要做的第一件事就是确保每个人都阅读了Mozilla的优秀文章,重新介绍JavaScript( https://developer.mozilla.org/en/a_re-introduction_to_javascript )。 JavaScript的一个最大问题是有很多方法可以完成大多数常见任务,本文应该让人们在同一页面上。另一个重要的参考是Douglas Crockford的作品,包括JavaScript:The Good Parts。

许多Java / C ++程序员的另一件事是JavaScript使用 function 范围NOT块范围。这可能会导致一些非常棘手的问题。在A List Apart上有一篇关于这个问题的文章,名为Binding in JavaScript。


总结上述资源中提到的主要问题,最重要的学习差异是

  • 如何使用原型继承(基于vs.class的继承)编写面向对象的代码
  • 如何使用闭包和lambdas
  • 如何利用动态物体的力量
  • 如何编写功能范围的代码

答案 3 :(得分:1)

由于你有一个Java引擎,所以养成为JS代码编写单元测试的习惯。选择编码风格并大力应用。如果可能,请使用工具检查代码是否符合编码样式。

答案 4 :(得分:1)

以下是一些可能对您有帮助的链接:

Javascript Best Practices

JavaScript Best Practices pdf file