【问题标题】:qooxdoo vs backboneqooxdoo vs 骨干网
【发布时间】:2012-09-22 01:52:41
【问题描述】:

我用过Backbone.js 并喜欢它。

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

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

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

【问题讨论】:

    标签: javascript oop backbone.js javascript-framework qooxdoo


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案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 出售给您的开发团队可能会很困难,即使这是更明智的技术选择。

      【讨论】:

        【解决方案3】:

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

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

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

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

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

        【讨论】:

          【解决方案4】:

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

          Backbone.js:

          • 与 Qooxdoo 相比的轻量级库。
          • 易于上手(如果您了解 javascript)。
          • 网络中有更多文档和示例。

          Qooxdoo:

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

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

          祝你好运!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-02-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-18
            相关资源
            最近更新 更多