4

我正在开发相当复杂的 webapps/dashboards,主要是在 Javascript 中。我喜欢在服务器上使用 mongo 和 node,但在客户端上通常会有特定于应用程序的库和脚本混乱。

我目前的项目包括bootstrapjqueryjquery-uiD3leafletcrossfilter和一些晦涩难懂的东西的组合,可以公平地说,虽然应用程序很棒,但代码已经变得一团糟。特别是 D3 和 crossfilter 的代码非常冗长,请参阅官方crossfilter 演示的源代码以获取典型示例。

那么问题来了:组织大型 javascript 应用程序的好工具和最佳实践是什么?

我已经避免使用全局变量并尝试使用闭包来组织命名空间,但恐怕我需要一些比这更多的结构。在服务器上有 npm 非常好,但是在浏览器中是否有类似的东西?

我已经研究过 require.jsbackbone.jscoffeescript,但我不太确定这些是否真的能解决问题或只会增加复杂性。

4

2 回答 2

3

听起来您已经走在正确的道路上,但这里有一些提示:

  1. 使用框架。Backbone现在很流行,但也有其他的。它将极大地帮助代码组织。事实上,如果您的应用程序大小不一,框架绝对是避免意大利面条式代码的必要条件。其他流行的框架包括EmberKnockout

  2. 如果您决定不使用这些框架之一,请至少使用模板。例如Mustache或内置的下划线。

  3. 合并和缩小您的文件。主要是为了优化加载时间。理想情况下,您会找到一些可以添加到后端的东西来为您执行此操作。例如,Rails 的“资产管道”使用了一种叫做Sprockets的东西。

  4. 我确实听到人们对coffeescript 赞不绝口。它并没有真正增加功能,但喜欢它的人说它使他们的代码更干净。

于 2012-08-04T22:30:20.410 回答
2

我认为“模块化”方法是您所需要的,使用模块可能会帮助您摆脱混乱。

您可以查看以下内容:

http://addyosmani.com/largescalejavascript/

http://www.yuiblog.com/blog/2007/06/12/module-pattern/

http://www.2ality.com/2011/04/modules-and-namespaces-in-javascript.html

于 2012-08-04T23:01:01.563 回答