我正在开发相当复杂的网络应用程序/仪表板,主要使用 Javascript。我喜欢在服务器上使用 mongo 和 node,但在客户端上通常会有特定于应用程序的库和脚本困惑。
我当前的项目包括 bootstrap 的组合, jquery , jquery-ui , D3 , leaflet , crossfilter和一些晦涩的东西,公平地说,尽管应用程序很棒,但代码已经变得一团糟。特别是 D3 和 crossfilter 的代码非常冗长,参见例如官方出处crossfilter demo举个典型的例子。
所以问题是:组织大型 javascript 应用程序的好工具和最佳实践是什么?
我已经避免使用全局变量并尝试使用闭包来组织 namespace ,但恐怕我需要比这更多的结构。在服务器上有 npm 这很好,但是在浏览器中有类似的东西吗?
我调查了require.js , backbone.js和 coffeescript ,但我不太确定这些是否真的能解决问题或只会增加复杂性。
最佳答案
听起来您已经走在正确的道路上,但这里有一些提示:
使用框架。 Backbone现在很流行,但还有其他人。它将极大地帮助代码组织。事实上,如果您的应用程序有任何大小,框架绝对是避免意大利面条代码的必要条件。其他流行的框架包括 Ember和 Knockout .
如果您决定不使用这些框架之一,请至少使用模板。如Mustache或内置的下划线。
合并并缩小您的文件。主要是为了优化加载时间。理想情况下,您会发现一些东西可以添加到您的后端来为您完成这项工作。例如,Rails 的“ Assets 管道”使用了一种叫做 Sprockets 的东西。 .
我确实听到人们对 coffeescript 赞不绝口。 .它并没有真正增加功能,但喜欢它的人说它使他们的代码更清晰。
关于javascript - 组织大型 JavaScript 应用程序的工具和最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11812363/