【问题标题】:Managing JavaScript complexity in a large project在大型项目中管理 JavaScript 复杂性
【发布时间】:2012-02-13 12:55:27
【问题描述】:

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

我们正在构建一个包含多个应用程序的 django 应用程序。每个应用程序都有不同的功能,并且必须以三种不同的模式(PC、平板电脑、手机)呈现。 JavaScript 中发生了很多事情:管理从服务器接收的数据、处理用户事件、注入 HTML sn-ps 和加载子组件。一些功能在应用程序和视图模式之间共享,但通常编写特定函数是有意义的(例如,悬停和单击事件可能必须在 PC 布局与平板电脑布局上以不同方式处理),因此我们进行分组this 在基于 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 库的管理。我们即将扩大我们的开发团队,代码可维护性非常重要。

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

【问题讨论】:

  • js/{app_name}/{device_type} 布局有什么问题?它似乎模仿了 django 基于应用程序的设置,并且非常清晰和有条理。你有没有什么地方缺少它?
  • @dm03514:没什么问题,就是想知道有没有更好的办法。

标签: javascript jquery django frameworks project-management


【解决方案1】:

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

用于quite a few pretty impressive projects

还有,这里有一个给learn more 提供教程的网站。

【讨论】:

    【解决方案2】:

    通常,最好按共性对库进行分组(如您的第二个示例)。但是,更重要的是确保您已命名空间或以其他方式使它们独一无二,以便您不太可能与其他潜在脚本发生命名冲突。

    【讨论】:

    猜你喜欢
    • 2011-01-01
    • 1970-01-01
    • 2011-12-28
    • 2011-06-16
    • 2015-10-26
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多