【问题标题】:How do you organize your Backbone files?您如何组织 Backbone 文件?
【发布时间】:2011-08-25 15:00:06
【问题描述】:

我希望将骨干网实现到一个包含多个“应用程序”的大型 Web 项目中,这些“应用程序”将使用它,并且我正在尝试找出一种组织文件的好方法。到目前为止我想出的两个是:

js
+- models
|  +- search
|  |  +- result.js
|  |  +- ...
|  +- cart
|  |  +- item.js
|  |  +- ...
|  ...
+- collections
|  +- search
|  |  +- results.js
|  |  +- ...
|  +- cart
|  |  +- items.js
|  |  +- ...
|  ...
+- views
|  +- search
|  |  +- resultRow.js
|  |  +- ...
|  +- cart
|  |  +- itemRow.js
|  |  +- ...
|  ...
+- routers
|  +- search
|  +- cart
|  ... 

js
+- search
|  +- models
|  |  +- result.js
|  |  +- ...
|  ...
|  +- collections
|  |  +- results.js
|  |  +- ...
|  ...
|  +- views
|  |  +- resultRow.js
|  |  +- ...
+- cart
|  +- models
|  |  +- item.js
|  |  +- ...
|  ...
|  +- collections
|  |  +- items.js
|  |  +- ...
|  ...
|  +- views
|  |  +- itemRow.js
|  |  +- ...
+- routers
|  +- search
|  +- cart
|  ... 

我倾向于后者,因为它在网站的各个部分之间有更清晰的界限并将应用程序保持在一起,但我们当前的后端框架结构更像前者。

【问题讨论】:

  • 将模型和集合放在一个文件夹中,分别命名为 result.js 和 result_collection.js。

标签: backbone.js organization


【解决方案1】:

我会选择第二个的修改版本...基本上,将 m、v 和 c 的文件夹放在您的每个站点部分中。当文件名和类名已经反映了它们是什么时,真的没有必要将它们分成子文件夹。

js
+- search
|  +- result.js
|  +- results.js
|  +- resultRow.js
|  +- ...
+- cart
|  +- item.js
|  +- items.js
|  +- itemRow.js
|  +- ...
+- routers
|  +- search
|  +- cart
|  ... 

看看这个布局,我仍然知道“item”是一个模型,“items”是一个集合,“itemRow”是一个视图,因为这是您设置的约定。在我看来,添加额外的文件夹名称层只会增加复杂性并且不会增加任何价值。

也 - (你可能知道这一点,但万一其他人阅读这篇文章不...)一定要使用类似 require.js 将所有 js 合并/缩小到一个文件中,然后再部署到你的生产环境。保持这样的代码组织非常适合开发和调试目的。但是当生产系统需要使用代码时,将其拆分为多个文件会导致最终用户出现严重延迟。 require.js 通过提供一种简单的方法来解决这个问题,即在开发工作期间有组织的文件,以及在生产中使用单个缩小文件。

【讨论】:

  • 是的,我们使用自定义的服务器端捆绑器,它使用 .htaccess 规则通过它传递所有 js 文件请求,然后将文件捆绑在一起,它们的依赖关系然后根据环境决定是否缩小。它被缓存在服务器端和客户端,直到新的推送生成新的缓存键(在 dev 上,此缓存键被覆盖为当前时间。)
  • 你推荐什么其他替代需要 js 的方法?只是为了将所有文件打包成一个文件(可选缩小)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 2014-06-05
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多