1.2 为什么选择Ext JS

在Java开发中,选择适合项目的框架是件为难的事情,它需要从团队开发成员的技术力量和项目需求等各方面来考量。富客户端的页面开发也面临同样情形。表1.1列出了目前经常使用的技术。

表1.1 前端开发技术的选择

表1.1中列出了可供选择的前端开发技术。其中Flex和SilverLight都需要浏览器插件支持,它们使用简单方便,开发出的效果绚丽多彩。但是目前在开发中不推荐使用它们,SilverLight的发展和插件都不是很成熟,Flex目前尚无成功案例。

如果采用JS进行网站的辅助开发,那毫无疑问是选择JQuery、MooTools之类的类库。如果采用JS实现富客户端应用,那么就得仔细考虑一下,因为要统一页面样式及风格十分困难,所以我们不应该去考虑JQuery或者YUI等类库。

比较Qooxdoo和Ext JS,开发者会很自然地使用Ext JS,其文档实例丰富,性能高于Qooxdoo,使用人群众多。

初学者也经常会面临着该种选择,即选择学习哪一种类库。学会流行并且应用前景好的框架能让你找到更好的工作,或在技术方面更进一步。Ext JS值不值得学习呢?值不值得在项目中选用呢?学习它要花多大的成本呢?下面我们对Ext JS的优点进行简单说明。

◆ 统一主题(Theme)

通过主题,样式能从UI组件中解耦分离出来。对于应用而言,可以根据不同的主题来统一改变风格。解耦的优点就是组件和主题能各自单独开发。使用UI组件时,可以不必关心主题。完成之后根据需求或喜好选择套用主题。Ext JS提供了几套主题模板,一般情况下,开发者无须使用CSS、PhotoShop等美工方面的知识就可以开发出绚丽的应用系统。

◆ UI与数据解耦

众多Java框架都采用MVC模式作为其架构模式。Ext JS在架构时也借鉴了MVC思想,它把主题与UI组件解耦、UI组件与数据解耦。设计UI时,不必考虑各种各样的数据形式,可以通过统一的数据接口来操作数据。

◆ 丰富的UI组件

Ext JS的主要目的是构建UI组件,并提供给开发者使用。它提供众多功能强大、使用简单方便的UI组件,在其官方论坛和文档例子中都提供了众多的扩展组件。开发者不但能方便地利用这些组件进行开发,还可以对这些UI组件进行扩展,形成自己的UI组件库。

◆ 方便测试与调试

JS调试是困扰开发的大问题,尽管一些浏览器也提供了插件(如FF的FireBug)来完成调试工作,但它们在准确度及精度上都不能令人满意。Ext JS通过Log的形式来提供调试功能,让Ext JS代码调试可以跟踪进入Ext JS源码内部,分析其运行状态以及出错原因。

◆ 优秀的源码

Ext JS源码设计精妙、结构清晰、匠心独具、文档丰富,是学习JavaScript的最好教科书。其代码中的拦截思想和编译的实现,可以看做天才之作。如能分析其源码,在JavaScript领域中的水平就能迅速提高。

如果仅仅是功能的优秀还不够,很多优秀的框架并没有什么人气,那么Ext JS呢?在选择类库时,还得考虑人气。人气高了,公司招这方面的技术人员容易而且成本低。此外,人气高了,开发过程中遇到问题时,可以通过论坛或者朋友轻松地解决,提高学习效率。

在Ext JS的官方网站上列出了差不多100家大公司都在使用Ext JS。其中著名的公司有Adobe、AIG、Microsoft、Borland、CNN、SAP、Sun、Sony、HP和IBM等。国内也有大量的公司使用Ext JS,因为一般都在内网中使用,不便于统计。但我们只要进入JS论坛,就可以了解Ext JS的使用情况。很多JS论坛中,讨论Ext JS的帖子占绝大多数。

如果功能或人气还不够有吸引力的话,那么丰富的文档绝对是可以打动人的。我们下载的Ext JS源码包中,不但包括Ext JS的使用文档,还包括开发中经常使用的实例。使用文档对Ext JS组件的功能、配置项、属性、事件都一清二楚地列出并进行说明。在开发过程中,开发者经常做的事情就是对文档实例中的例子稍加修改,然后将其应用到系统中去。