我正在寻求将骨干网实施到一个包含多个“应用程序”的大型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
| ...
我倾向于后者,因为它在网站的各个部分之间有更清晰的界限,并将应用程序保持在一起,但我们当前的后端框架结构更像是前者。
答案 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通过提供一种简单的方法来解决这个问题,即在开发工作期间使用组织文件,以及生成单个缩小文件。