管理大型项目中的JavaScript复杂性

时间:2012-01-18 19:43:46

标签: javascript jquery django frameworks project-management

我应该使用什么来管理应用程序中越来越多的JavaScript文件?

我们正在使用多个应用程序构建django应用程序。每个应用程序具有不同的功能,并且必须以三种不同的模式(pc,平板电脑,移动设备)呈现。 JavaScript中发生了很多事情:管理从服务器接收的数据,处理用户事件,注入HTML片段以及加载子组件。一些功能在应用程序和视图模式之间共享,但通常编写特定功能是有意义的(例如,悬停和单击事件可能必须在PC布局与平板电脑布局上以不同方式处理)因此我们正在分组这在基于app / layout / function的文件中。

我们使用带有命名的平面文件结构来区分文件类型:

ui.common.js
ui.app1.pc.handlers.js
ui.app1.pc.domManupulators.js
ui.app1.tablet.js
ui.app2.pc.js 
...

然而,现在,随着应用程序(和角落案例)数量的增长,这种方式正在快速变得不可用(我们接近20多个文件,并且在我们完成时预计可能超过40个),所以我们是将所有内容放在目录中:

js/
  common/
    core1.js
    ajax2.js
  app1/
    tablet.js
    pc.js
  app2/
    mobile.js
    ...

我一直在寻找JavaScriptMVC来帮助解决这个问题。虽然它确实提供了有用的工具,但似乎没有什么能够更好地管理我们的巨型JavaScript库。我们很快就会扩展我们的开发团队,代码可维护性非常重要。

有什么东西可以让我们的生活更轻松吗?您在工作中使用的习惯/经验法则是否可以缓解这种情况?

2 个答案:

答案 0 :(得分:2)

Backbone.js用于以MVC样式模式组织javascript繁重的应用程序。这将需要一些学习,但即使你最终没有使用它,它肯定是你想要研究和学习的东西。

它在quite a few pretty impressive projects

上使用

而且,这是一个带有教程的learn more网站。

答案 1 :(得分:1)

通常,首选按共性(如第二个示例)对库进行分组将是首选。但是,更重要的是确保您具有命名空间或以其他方式使它们成为唯一,以便您不太可能与其他潜在脚本命名冲突。