【问题标题】:Closure Library or YUI 3闭包库或 YUI 3
【发布时间】:2011-09-24 00:33:11
【问题描述】:

我正在使用 python、django 构建一个企业 Web 应用程序。我的最终决定是使用哪个 javascript 库。我正在考虑使用 Google 的闭包库或 YUI3。大部分开发,我都使用 jQuery。我可以使用 jQuery 快速编写代码,但似乎不适合企业使用。

YUI 3 看起来不错。它包括我想使用的大多数小部件,但 Closure 库的功能几乎相同。 Closure 库更好的提供是他们有 Closure Compiler,但似乎 Closure 需要编写比 YUI 3 更多的代码。YUI 3 的文档也很不错。

该应用程序将适用于网络和移动设备,因此该库不应在 Android 或 iPhone 等移动设备中中断。

如果你是我,你会做出什么决定?

【问题讨论】:

  • 似乎没有人像我一样担心。
  • 为什么 jQuery 不适合企业使用?它是世界上唯一使用最广泛的框架。
  • @BNL 使用宽度是否可以很好地衡量任何主题的质量以及在特定情况下使用的适当性?
  • @BNL 人们倾向于喜欢 jQuery,因为它们易于编写并且有很多插件。但是根据我的经验,这些插件在升级核心 jQuery 库时遇到了麻烦,所以我们不得不修改插件以使其正常工作,或者放弃并尝试找到与核心库一起工作的新插件。随着时间的推移,它变得越来越混乱。

标签: yui3 google-closure-library


【解决方案1】:

免责声明

我主要参考企业环境中关于 jQuery 的评论,由于我缺乏 YUI 方面的经验,所以我无法给出任何有意识的建议来[不]在 Closure 上使用它。

但在没有其他答案的情况下,我将分享我使用 Closure 的经验。


闭包

至于 Closure 库,我在最近几个项目中一直在使用它,但我绝不是这方面的专家,我只能说好话。

库提供了您在构建任何类型的 UI 时所需的核心组件。但是,与 jQuery 不同的是,它没有附带数以万亿计的“ready-to-deploy”插件脚本,或者如某些人所说,不包括电池。

它有基本的事件、控件、xhr、对话框、表单组件等,我认为最重要的是命名空间(或者至少看起来像它们......)。

有了它,您可以创建自己的自定义 UI,只受您的想象力和 JavaScript 的力量的限制(而 JS 是非常强大的语言,即使它确实有自己的烦恼)。

Closure compiler 的帮助下,它不仅缩小了代码,而且排除了所有未使用的代码、进行类型检查、提供对调试有用的警告等等,它看起来像是由团队构建大型应用程序的坚实基础任何大小。

在我看来,在企业项目中使用 Closure over jQuery 的主要原因是一致性。插件很棒,但它们往往在各个层面都存在不一致,无论是编程实践、视觉风格和结构、性能、用法,你都能想到。在大型项目中消除这些小的不一致可能会浪费大量时间。

因此,总而言之,如果您有大型项目需要自定义 UI 和很大的灵活性,那么 Closure 是适合该工作的工具。有了“命名空间”,它甚至感觉都是 Pythonish。

附:我们还在服务器端使用 Django。

【讨论】:

    【解决方案2】:

    您已经谈到了这里的大部分重要方面,类型检查、缩小、命名空间,但我想补充一些。除了他们提供的模板解决方案之外,它不仅速度超快,而且具有完整的国际化支持,它与库混合并压缩。它还可以编译成 java 代码,因此您可以使用同一个模板在服务器和客户端上进行渲染。 然后是具有完整生命周期的组件架构,将渲染器与组件分开,(如果您熟悉 Swing 或 flex 就会明白),它有两种模型,一种是客户端渲染,另一种是装饰与服务器端渲染相得益彰。

    测试解决方案定义明确,现在 我们有成千上万行 javascript,如果没有关闭,IMO 将是一个无法维护的混乱。

    【讨论】:

      【解决方案3】:

      我会选择 YUI 3。特别是如果您考虑 Google 的 Closure 的唯一原因是编译器。因为这在 YUI 3 中运行良好,压缩比 YUI 压缩器好得多。我确信它不会像使用 Closure 代码那样做得好,但这很难测试。

      YUI 3 中的模块化框架非常棒,糖分足够让你牙疼又不会太重。雅虎在他们所有的网站上都使用它,而且他们非常重视性能(所以它不会全是坏的)。

      【讨论】:

        【解决方案4】:

        在我做的测试中,Google Advanced Compress 更好,在 Yahoo! 之后YUI 压缩机。你可以在这里进行测试: http://jsperf.com/closure-vs-yui

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多