用于组织大型JavaScript应用程序的工具和最佳实践
我正在开发相当复杂的webapps /仪表板,主要是在Javascript中。 我喜欢在服务器上使用mongo和node,但是在客户端通常会有特定于应用程序的混乱的库和脚本。
我目前的项目包括bootstrap , jquery , jquery-ui , D3 , 传单 , 交叉filter和一些晦涩的东西的组合,这是公平的说,尽pipe应用程序是真棒,代码已成为邪恶的混乱。 特别是D3和crossfilter的代码是相当详细的,例如参见官方crossfilter演示的源代码。
所以这个问题: 组织大型javascript应用程序的好工具和最佳实践是什么?
我已经避免了全局variables,并尝试用闭包来组织命名空间,但是恐怕我需要一些比这更多的结构。 在服务器上有npm,这是相当不错的,但有什么类似的浏览器?
我已经看了require.js , backbone.js和coffeescript ,但是我不太确定这些是否真的能解决问题或者只是增加复杂性。
听起来你已经在正确的道路上,但这里有一些提示:
-
使用框架。 骨干现在很stream行,但也有其他的。 这将有助于代码组织。 事实上,如果您的应用程序的大小完全一样,则框架绝对必须避免意大利面代码。 其他stream行的框架包括Ember和Knockout 。
-
如果您决定不使用这些框架之一,至less要使用模板。 如胡须或内置的下划线。
-
组合和缩小文件。 主要是为了优化加载时间。 理想情况下,你会发现一些添加到你的后端,将为你做这个。 例如,Rails的“资产pipe道”使用了一些被称为Sprockets的东西。
-
我确实听到有人对咖啡标签感兴趣 。 它并没有真正增加function,但是那些喜欢它的人说它使得代码更清晰。
我认为一个“模块化”的方法是你所需要的,模块的使用可能会帮助你摆脱混乱。
你可以看看下面的内容:
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