为什么选择Ext作为表现层解决方案

    以下来自InfoQ和 Sitepoint的两篇文章的节选,前者讨论了JavaScript框架的选择标准,后者详细解释了Ext的优势。我想两个文章的节选片段已经为我们选择Ext作为表现层解决方案提供了足够的理由。

评估JavaScript框架/库标准通用标准

随着AJAX技术日益广泛地被采用,许多开发者和架构师仍然在尝试甚至挣扎于应该采用什么样的最佳方式来评估JavaScript框架/库。Brian Raindel提供了一些意见 ,关于在选择框架的过程中应该考虑的各个方面,总结如下:

  • 项目需求。 这个 Web 站点或者 Web 应用,是否需要 AJAX ,健壮的事件处理?是否需要特效库? 框架直接提供的功能的总量,以及使用框架需要的经验同样需要考虑。
  • 对浏览器的支持。 虽然大多数框架能够支持大多数浏览器, “…… 但是通常会有不易察觉的例外 ——Mac 操作系统上的 Safari 浏览器常有这样的陷阱
  • 开发团队对框架的支持力度。 有一个核心开发团队来维护的框架是最好的。这样 Bug 报告和问题会有更快的响应速度,而且测试会更加严格,会更好地遵守开发指导方针。
  • 框架的成熟度 框架的成熟度是最能说明其寿命的指标,同时也是框架的坚实基础。一个成熟的框架不会是 beta 版的 ……” 一个兴旺的社区,以及提供 Subversion CVS 代码库,也是成熟标志。
  • 公开更新和发布的频率 。长时间的延迟和臃肿的发行版,都是你在将来得不到框架的有效支持的明确信号。反之,过多的公开版本意味着不稳定,或者项目不够专注。
  • 文档质量。 文档是一个重要的区分指标。强健的文档包括 API 、书籍、教程和博客,而 只谈论句法的文档是最差劲的 。每个方法和属性的例子也是很有帮助的。
  • 存在一个活跃的社区。 有经验的用户是愿意伸出援助之手还是打发你去其他地方寻找帮助?是否有开发者为框架开发扩展或者为核心框架作出贡献? 社区的个性也是判断社区是否可依靠的风向标。
  • 基准测试 。基准测试可以帮助我们对于框架的性能方面得到概括的认识。基准测试还说明了框架采用了某些质量保证方面的最佳实践。另外, “…… 即使是速度上的略微提高,或者软件的尺寸缩小了,都可以视作一种正面的改进。
  • 框架的可扩展性。 支持插件对于任何 JavaScript 框架来说都绝对是加分的,但是通常开发者仅仅想知道 —— 在核心库中诊断问题所在有多困难?
  • API 风格。 这是一个重要的问题,但是是个复杂的问题。对于大多数开发者来说,只有在很多项目中使用过几个 JavaScript 框架之后,才会对这个问题有所认识。简洁和连贯性 (chainability) 是两个非常重要的特征,不要忽视。

在对该文章的一些评论中,有一些很好的意见可以作为选择JavaScript库的标准:

  • 是否有充分的功能测试和单元测试? —— Kanjax 的评论
  • 该框架是否有商业化的支持?

有许多评论者肯定了JQuery,然而Ian认为在需要高性能的场景下,使用JQueryprototype需要格外注意:

  • 如果你的应用需要高性能,那么你要小心这些 JavaScript 框架。 Prototype jQuery 在使用大的数据表和网格的时候会死的很难看。
  • 我对我目前正在工作的项目做了大量的基准测试,该项目大量使用 AJAX 技术,并且用在项目核心的大数据表上。
  • 我试验过 jQuery Prototype ,它们的性能总是不行。问题在于 document.getElementById() 方法。 DOM 的查找操作是非常耗时的。实际上,我们的测试似乎表明 DOM 查找不是通过哈希来完成的。
  • 许多框架会加入你通常用不上的扩展,这些扩展会降低性能。我们的解决方案是研究框架做了什么,然后我们自己编写代码,除去所有的扩展和任何无关紧要的框架支持。
  • 但是对于没有大数据表的小型 Web 页面, Prototype 或者 jQuery 工作得很好,而且易于使用。

为什么选择Ext

Ext Comes to the Rescue

In a nutshell, Ext delivers just what we need -- a stable and uniform JavaScript platform for building rich web applications. Building on the Yahoo! UI Library, Ext has looked very promising for some time. When version 2.0 was released last week, however, the library matured into possibly the most robust JavaScript library available for developing rich web user interfaces.

There are a few alternatives out there of course, such as Dojo and the Yahoo! UI Library, but there are a few key points that, when combined, make Ext stand out from the crowd. These points include:

  • Ext is very fast. Performance is often a problem when programming JavaScript.
  • Ext is implemented in a 100% object-oriented, well structured, consistent way. This makes the library fast to learn, and the code easy to read and understand.
  • The modular implementation with its consistent base makes the library easy to extend.
  • All Ext elements (widgets) are ready for use. In contrast to many other libraries, the widgets are usable as they are, with pre-defined styles, settings, and behavior. Still, all elements are fully customizable and can be themed if required.
  • The Ext developers are extremely dedicated and competent, and have an understanding, and most importantly an interest, in users' needs. Ext documentation is thorough and full of working examples.
  • The Ext community is very active, and the tone is generally very positive.
  • Ext can be used both under a free and a commercial license.
  • Last but not least, Ext looks very slick!

Some (or maybe even all) of this is true for other libraries as well. I don't pretend to suggest that there aren't other excellent alternatives out there, and you should investigate all options before deciding to stick with one. However, in my experience Ext gives the best overall impression, which is why I decided to run with it.





以上片段节选资源来自:

http://www.infoq.com/cn/news/ 2007/12/c hoosing-javascript-frameworksSitepoint
http://www.sitepoint.com/article/build-rich-applications-ext

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值