4

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

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

那么,如果您同时使用了这两种方法——您对 qooxdoo 与 Backbone.js 的关系有何看法?

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

4

4 回答 4

10

我对 Backbone.js 的使用经验有限,但它非常适合创建数据量大的 Web 应用程序。能够将任何 UI 放在其上使其非常灵活。至于代码维护,Backbone 的代码组织真的取决于开发者。使用其他库(require.js)肯定有助于组织,但仍然需要大量的努力和预先规划。

另一方面,Qooxdoo 是完全不同的野兽。以自己的类型系统为核心,Qooxdoo 真正将自己提升为一种位于 javascript 之上的经典语言,这需要良好的代码组织。这并不是说你不能用它编写杂乱无章的代码,只是它让组织大型项目变得更加容易。

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

定义接口、类、混合、继承、属性、访问修饰符(!)等(...)的能力在经典意义上(ala Java/C#/...),同时保持在一个定义良好的命名空间文件/类中结构,真的将 qooxdoo 提升到高于其他一切。事实上,它的类型系统非常好,他们甚至将它从 UI 组件中分离出来,以便在浏览器应用程序中独立使用,或者在带有 node.js/rhino 应用程序的服务器上使用。它是恒星。

无论如何,我对 qooxdoo 有很大的偏见,所以请持保留态度。:)

于 2013-01-08T23:33:18.437 回答
2

我都用过。对于小型应用程序,更像是具有某些功能的网页,而不是碰巧使用浏览器作为其 UI 的真正繁重的应用程序,qooxdoo 是矫枉过正。对于我遇到的大多数 Intranet 应用程序,它们具有丰富的 UI、几种不同的形式、大量使用许多不同的 UI 控件(表格、树、组合、拆分窗格、选项卡视图等)。qooxdoo 是 IMO 更好的选择。

这并不是说您不能使用其中一种构建任何一种类型。只是 qooxdoo 使处理大型代码库变得更容易,为 MV(C|P) 架构提供了良好但不受限制的支持,对各种后端类型(REST、RPC、JSON 或 XML)提供了良好的支持。盒子,优秀的单元测试支持,关注点分离。主题和功能——很多有用的东西,当你做一个大而复杂的应用程序时,但对于小型应用程序来说不是那么有用和太重。

准系统主干有一个特别的弱点,这使得它对于大型项目来说尤其是一个糟糕的选择——它的模型不是分层的(即模型中的成员本身就是模型不会级联事件或 JSON 序列化——它们被视为普通的 Java 对象通过骨干)。Qooxdoo 的属性系统和内置的 JSON 序列化器就没有这个问题。OTOH,有几个骨干插件专门解决了这个问题。

OTOH,最近,qooxdoo 已经削减了各个部分,以便在较小的网络应用程序/移动应用程序中轻松使用 qooxdoo 的适当子集,使它们可以单独使用。因此,学习qooxdoo并围绕它构建生态系统,对于企业的内网开发来说,可能是更明智/更经济的选择。

另一个需要考虑的方面是受欢迎程度。大多数 Web 开发人员都没有听说过 qooxdoo,因为 1&1 - qooxdoo 开发的支持者 - 根本不投资营销 qooxdoo。因此,将 qooxdoo 出售给您的开发团队可能会很困难,即使它是更明智的技术选择。

于 2014-08-26T09:05:05.693 回答
1

我写了一个大的 qooxdoo 应用程序,我对结果很满意。Qooxdoo 非常适合这一点(我不知道有很多其他框架可以做到这一点)。

这不是很容易开始,但 qooxdoo 的开发人员提供了一些很棒的工具来帮助学习:游乐场、演示浏览器、api 查看器、检查器、测试浏览器.... Qooxdoo 团队非常专业,当您在这里发布问题时通常会快速回答或通过邮件列表。

贡献真的很容易,他们张开双臂欢迎你的贡献。

该框架的主要问题是它的流行性。对很多人来说是未知的。框架很大,部分代码很旧,需要更多的用户反馈来改进。

幸运的是,您通常只需要创建派生类和编写/覆盖方法来帮助您(并发送拉取请求:))

于 2014-09-19T22:50:33.047 回答
0

根据我的理解,请在下面找到比较:-

骨干.js:

  • 与 Qooxdoo 相比的轻量级库。
  • 容易上手(如果你知道 javascript)。
  • 网络中有更多的文档和示例。

酷狗:

  • 更大的图书馆
  • 不容易上手
  • 与backbone.js 相比,更少的文档和示例

我曾经是一名 Qooxdoo 开发人员。但事实是Backbone.js在许多方面都更好。特别适用于小型应用程序。

祝你好运!

于 2014-04-02T09:06:45.357 回答