你如何组织你的Backbone文件?

时间:2011-08-25 15:00:07

标签: backbone.js organization

我正在寻求将骨干网实施到一个包含多个“应用程序”的大型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
|  ... 

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

1 个答案:

答案 0 :(得分:21)

我会使用第二个版本的修改版...基本上,在每个网站部分删除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通过提供一种简单的方法来解决这个问题,即在开发工作期间使用组织文件,以及生成单个缩小文件。