qooxdoo和backbone的比较

4

我使用过Backbone.js并且十分喜欢它。

最近我接触到qooxdoo并且说实话?对于OOP代码设计来说,它似乎更好!
完全支持OOP(喜欢继承[this.base],命名空间等)。
我还没有深入研究,所以我正在寻找与Backbone.js的比较,但没有成功。

因此,如果你都使用过 - 你可以说说qooxdoo相对于Backbone.js的优缺点吗?

我不是在谈论Backbone中“模型持久化”(保存/删除ajax调用)或qooxdoo中的UI(qx.ui.form.Button)之类的功能,而是代码结构和可维护性方面的问题。

4个回答

10

我对Backbone.js的经验有限,但它非常适合创建数据密集型的Web应用程序。将任何UI放在其上面使其非常灵活。至于代码维护,Backbone的代码组织取决于开发人员。使用其他库(如require.js)确实有助于组织,但仍需要大量的前期规划和努力。

另一方面,Qooxdoo是完全不同的东西。以自己的类型系统为核心,Qooxdoo真正使自己成为一种基于JavaScript的经典语言,这要求良好的代码组织。这并不是说你不能用它编写杂乱无章的代码,但它只是更容易组织大型项目。

因为qooxdoo更像是一种语言而不是框架[当然,它的丰富UI和数据组件非常出色],你可以用它做任何事情,重新创建Backbone的所有优点,同时轻松添加漂亮的功能-强烈定义类(所有类型,模型,控制器,视图等)-并从这些类中生成[优秀的]文档!

在一个非常明确定义的命名空间文件/类结构内以经典意义(ala Java/C#/...)定义接口、类、混入、继承、属性、访问修饰符等,真正将qooxdoo提升到其他所有竞争对手之上。它的类型系统非常好,以至于他们甚至将其与UI组件分开,以在浏览器应用程序中独立使用或在node.js/rhino应用程序中使用。它太棒了。

无论如何,我非常偏爱qooxdoo,所以请带着一定的怀疑看待我的意见。 :)


2
我使用了两种框架。对于小型应用程序,更像是带有一些功能的网页而不是真正使用浏览器作为其用户界面的重型应用程序,qooxdoo 太过于复杂。对于我遇到的大多数内部应用程序,这些应用程序具有丰富的用户界面、多个不同的表单、大量使用许多不同的用户界面控件(例如表格、树形结构、组合框、分割窗格、选项卡视图等),在我看来,qooxdoo 是更好的选择。
并不是说你不能使用其中一种构建任何类型的应用程序。只是 qooxdoo 更容易处理大型代码库,提供了良好但不限制 MV(C|P) 架构的支持,开箱即用支持各种后端类型(REST、RPC,都可以使用 JSON 或 XML),出色的单元测试支持,关注主题和功能的分离 - 在构建大型复杂应用程序时非常有用,但对于小型应用程序来说则过于沉重和不实用。
Backbone 的一个特定弱点使其成为较大项目的不良选择 - 它的模型不是分层的(即模型中作为模型本身的成员不会级联事件或 JSON 序列化 - 它们被 backbone 视为普通 Java 对象)。Qooxdoo 的属性系统和内置的 JSON 序列化程序没有这个问题。另一方面,有几个 Backbone 插件专门解决了这个问题。
另一个要考虑的方面是流行度。大多数 Web 开发人员都没有听说过 qooxdoo,因为 qooxdoo 开发的支持者 1&1 根本不投资于推广 qooxdoo。因此,即使它是更聪明的技术选择,向你的开发团队推销 qooxdoo 可能会很困难。
最近,qooxdoo 削减了各种部分,使其易于在较小的 Web 应用程序/移动应用程序中使用适当的 qooxdoo 子集,并将它们单独提供。因此,学习 qooxdoo 并围绕它构建生态系统可能是企业内部网络开发的更明智/更经济的选择。

1
我写了一个很大的qooxdoo应用程序,结果让我很满意。Qooxdoo非常适合这个(我不知道还有什么其他框架可以做到这一点)。
它不是很容易入门,但qooxdoo的开发者提供了一些很棒的工具来帮助学习:playground、demo浏览器、api查看器、检查器、测试浏览器等等。Qooxdoo团队非常专业,在这里或通过邮件列表发布问题时通常都会快速回答。
贡献非常容易,他们欢迎你的贡献。
该框架的主要问题是其普及度。对许多人来说它是未知的。该框架很大,代码的某些部分比较老旧,需要更多用户反馈以改进。
幸运的是,通常你只需要创建派生类并编写/覆盖方法来帮助自己(并发送pull请求:))。

0
请看下面的比较,根据我的理解:-

Backbone.js:

  • 相比于Qooxdoo,轻量级的库。
  • 如果你了解javascript,容易上手。
  • 在网络上有更多的文档和示例。

Qooxdoo:

  • 较大的库
  • 难以入门
  • 与backbone.js相比,文档和示例较少

我曾经是一个Qooxdoo开发者。但事实上,对于小型应用程序,Backbone.js更好

祝好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接