【发布时间】:2012-08-21 13:41:43
【问题描述】:
在将我的 Backbone 对象组织到 AMD(用于中型到大型应用程序)中时,我一直在努力在可重用性和复杂性之间取得适当的平衡
(A) 每个 Backbone 对象(模型、视图等)都应该在它们自己的模块中吗? (B) 相关的 Backbone 对象是否应该在同一个 AMD 模块中? (即:同一模块定义中的PersonModel、PersonCollection、PersonView对象)
选项 (A) 似乎允许最大的灵活性和可重用性,但由于(可能)大量的文件,也是最复杂的。虽然选项 (B) 可能更容易管理事物,但灵活性较差,并且确实难以进行单元测试。
其他人是(或已经)如何构建这些东西的?
【问题讨论】:
-
我不确定这个问题是否有正确答案,尽管我的偏好是让每个模型、视图和集合都有自己的模块。是的,您将拥有大量文件(不要忘记您的模板文件!:-) 但这对我来说并不是什么大问题。我只是确保我的文件名可以让我知道它们所在的更大上下文,并将所有相关文件放入适当的文件夹中。在大约 250 行代码之后,无论如何都很难阅读,因此每个 Backbone 模型、视图、集合 1 个模块最终变得更容易管理。
-
我刚刚尝试了 Backbone。但我认为文件数量对性能很重要(文件过多和往返服务器的次数会猛增)。所以,也许你可以尝试保持模块化,当你为生产构建时,使用某种“编译器”(可能是闭包?)来减少和组合 JS 文件的大小。
-
Helios:RequireJS 可以做到这一点。 requirejs.org/docs/optimization.html
标签: backbone.js structure requirejs