构建Flex应用的10大误区

在这篇新闻中,Adobe的James Ward与InfoQ.com一起为你带来了Flex的另一种10大(Flex最新的10大)。Flex是一个开源的应用开发框架,用来构建运行在web(使用 Flash
Player)或者桌面上(使用Adobe
AIR)的富Internet应用。总之,Flex是一个强大易用的框架,但是今天让我们瞧瞧构建Flex应用时经常犯的错误。

对于Flex新手,请阅读InfoQ最近的Adobe
Flex Basics
以对该框架有一个快速的了解。下面是易犯的错误列表:

1. 使用RIA框架去构建Web1.0应用(新技术换汤不换药)。

从Web
1.0到RIA的过渡中最大的挑战之一来自思考方式的转变。Flex给予开发者一个高级的组件库,使其可以完成很多以前不可能完成的任务。但是很多时候,Flex的这种能力被忽略了,它仅仅被用来实现更加传统的Web
1.0应用。

构建Web
2.0应用不仅仅意味着页面的局部刷新和旋转的圆角图标。例如,Flex开发者应使用矢量图向用户提供数据的可视化表示,以及对于富应用流的高级控制。最近Stephan
Janssen与InfoQ.com一起讨论了该议题

作为一个Java开发者,对于面向对象的ActionScript和UI标记语言的学习简直就是小菜一碟。但是对于(Java)开发者来说真正的挑战在于我们不是设计师,并且这两个技术对于RIA来说是必不可少的。

2. 破坏标准的浏览器体验

尽管Flex确实提供了一个优秀的平台以改善用户体验,但是保持用户习惯,如后退按钮、书签和自动完成也是相当重要的。

Flex 3包含了新的深层链接特性以支持后退按钮和书签。你可以访问labs.adobe.com来了解更多。那有很多组件能够实现自动完成。你可以使用来自于Adobe Exchange的AutoComplete Input组件。

3. 使用过多的容器导致应用变慢

Flash
Player使用了一个按层次显示的对象图,这一点与HTML的文档对象模型(DOM)很相似。容器嵌套的层次越深,渲染所花费的时间就越长。Adobe的Flex开发者中心有一篇文章讨论了关于Flex性能的最佳实践,包括了容器的使用细节:

Flex最大的性能风险来自于对容器的滥用。嵌套太多的容器会影响应用的性能。这是Flex开发者面临的最严重的性能风险——不过还好,它完全能被避免。

4. 使用XML而不是其他更优化的协议导致应用变慢

Flex向开发者提供了多种选择以在Flex客户端和服务器之间进行数据传输,包括AMF3、XML、SOAP及直接的HTTP请求。Ward在他的人口普查应用中阐述了这些技术的使用及性能。

对于后端使用Java的新项目来说,应该考虑一下BlazeDS。BlazeDS是Adobe最近的一个开源数据服务产品,它使用了AMF3协议。AMF是一个二进制传输协议,很容易与Java集成,其性能要优于XML。对于所有主要的后端技术都有相应的AMF开源实现。

如果你不选择BlazeDS,那么你还可以选择Hessian。Hessian对二进制的web services协议提供了ActionScript/Flex支持。

5. 试图雇佣Flex开发者

现在很难找到有经验的Flex开发者。Flex现在正处在上世纪90年代Java所处的位置。Flex开发者已经供不应求了。这就造成了难以寻觅
到有经验的Flex开发者的后果。然而,这给Java开发者创造了一个很好的机会以扩充技能,并且从事一种新兴且有趣的技术。很多寻找Flex开发者的公
司直接对Java或者其他web开发者进行几周的Flex培训,并且大获成功。对于熟悉Web和GUI编程的开发者来说,学习Flex语言和APIs易如反掌。

6. 特效的过度使用

开发者可以很容易地通过Flash增加特效。但是要确保特效有意义并且与上下文是匹配的。否则他们只会让用户反感。特效的时间选择也很重要。交互设计器可以帮助我们决定何时应使用特效,何时不应该使用。交互设计器还能为我们推荐最佳的特效类型、间隔和最简化的功能。

关于特效的使用在laair.org上有一篇好文:

大多数的特效简直太长了。它们不但长,而且还慢,甚至让人反感。关掉它。如果我遇到这种事情的话,我就会转身离去,因为我实在讨厌这种等待。

千万不要误会我,我并不是反对特效。我只是反对为了目的而做的太长或者太过分的特效。每个特效都可以依照其目的进行分解。找到你要特效的目的,然后再使用它。

7. 没有搭建企业生态系统

就像其他的软件项目一样,为于你的Flex应用建立企业生态系统是非常重要的。

测试驱动开发(TDD)在当前是大多数企业项目的首选方案。对于Flex来说,FlexUnit框架可用来编写单元测试。在Adobe的开发者网络上,Neil Webb讨论了面向Flex开发者的TDD及FlexUnit的使用。此外,Flexcover可用来度量代码覆盖率。

当多个开发者协同工作时,持续集成(Continuous
Integration
)被证明是良好的实践。与Java应用类似,也有相应的Ant和Maven插件对你的Flex应用进行持续集成。

8. 没有使用整个框架

在Adobe Flex中有大量可选的特性,你应该考虑在你的应用中使用它们。例如,运行时共享库(Runtime Shared Libraries,即RSL)可用来减少应用的大小。

你可以将共享资源集成到单独的文件中,这样就可以在客户端单独下载和缓存了,通过这种手段可以减少应用产生
的SWF文件的大小。很多Flex应用可以在运行时加载这些共享资源,而每个客户端只需下载一次即可。这些共享资源叫做运行时共享库(Runtime Shared
Libraries)。

框架的另一个特性是内建的辅助功能。你可以通过Adobe在线文档了解更多的关于Flex的辅助功能的信息。除了内建的辅助功能外,框架还提供了对于本地化的内在支持。请访问Adobe新手上路来了解最新的Flex3框架特性。

9. 使用复杂的渲染器降低了DateGrid的速度

针对DataGrid开箱即用的itemRenderer已经有过很好的优化了。误解#3讨论了嵌套过深的容器的性能问题。在Flex中有一个地
方很容易造成容器的深层次嵌套,那就是DataGrid的item渲染器。由DataGrid所渲染的item渲染器数量等于可见的行数乘以可见的列数。
定制的DataGrid和List
item渲染器应该经过非常好的优化才行。当需要在item渲染器中使用复杂的布局逻辑时,最好使用UIComponent(或者其他底层类)并且手工完成该单元格内容的定位。

10. 没有准备离线应用。

RIAs的传统模型在于浏览器。然而像Adobe
AIR
Google Gears
样的技术使得应用可以离线运行。如果用户需要可以离线对应用时而你尚未准备好的话,那将你的应用改为支持离线特性将变得异常困难。典型地,在web应用
中,业务逻辑存在于服务器端。在离线RIAs中,业务逻辑必须转到客户端。为了使应用既支持离线,也支持在线,那就很有必要提前决定某些业务逻辑的位置。

查看InfoQ.com上有关Flex的内容以了解更多。

时间: 2024-09-23 05:06:10

构建Flex应用的10大误区的相关文章

有关手机电池的10大误区

 阁下有没有遇到一些老派用户说起智能手机电池来一套一套却又土得掉渣?下面为大家揭密10大误区. 额滴个神啊,手机电池带着多少的神话色彩,多少的传奇色彩--多少的无奈.手机电池是否够长对我们影响颇大,而别的设备却往往可以用上一个星期(比如亚马逊的Kindle). 手机用户会做一些古里古怪的事,只是为了可以令电池用得长一点再长一点再长一点.不过,我们听来的有关手机电池的说法多数都不对.我们来仔细了解一下有关电池的误区,我们的命根子手机就靠这些电池运作. 1:电池有"记忆" 电池没有记忆.一

虚拟办公室10大误区

文/Mark A.R. Mitchell 在追逐成功的道路上,小企业要面对很多挑战,那些采用虚拟办公室的企业面临的困境更大.为什么要犯下那些明明可以避免的错误呢?在虚拟办公或 移动办公中存在10大误区,要小心避免: 1.数据备份失败:要想毁掉一家企业,这是最灵验的办法.就像不管我多少次提醒别人要备份文件,结果还是都一样--大部分人就是不见棺材不落泪.不过如果你是通过移动办公设备工作,或自己在家干活,一旦数据有什么闪失,你的所有辛苦就全都付之流水了. 解决办法:用外置硬盘或某种网络存储服务每天备份

认识软件性能测试10大误区

曾经我们帮助客户进行软件性能测试的时候,客户不解的问,不是必须通过功能测试后才可以测试性能吗?可能有很多人会存在这样的疑问,在这里,我们的多位专家根据多年经验总结出性能测试的10大误区,希望能给大家带来帮助. 误区1:应用程序必须通过功能测试后才可以测试性能. 应该尽早的进行性能测试.性能测试可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当整个系统的所有成分都集成到一起后,才能检查一个系统的真正性能. 性能测试从早开始,完成一个小模块,对小模

避免投资浪费 认清大数据的10大误区

大数据在当前的科技新闻中占据了主导地位,它被吹捧为一切问题的可能的解决方案,从入侵检测与预防欺诈,到治疗癌症和设置最优的产品价格. 但我们定义大体量.多格式.高速度的大数据,并不是能够搞定每一个问题的灵丹妙药.事实上,如果公司迷信周围的一些大数据的神话,可能在错误的方向越走越远,浪费大量的时间和金钱,影响公司的市场竞争地位,或者损害公司的声誉. 以下是企业应当知道的围绕大数据的十个最大的误区,了解他们将有助于有效地避免大数据的消极影响,并真正获得大数据带来的商业价值. 避免投资浪费,认清大数据的

认清大数据的10大误区

 大数据在当前的科技新闻中占据了主导地位,它被吹捧为一切问题的可能的解决方案,从入侵检测与预防欺诈,到治疗癌症和设置最优的产品价格. 但我们定义大体量.多格式.高速度的大数据,并不是能够搞定每一个问题的灵丹妙药.事实上,如果公司迷信周围的一些大数据的神话,可能在错误的方向越走越远,浪费大量的时间和金钱,影响公司的市场竞争地位,或者损害公司的声誉. 以下是企业应当知道的围绕大数据的十个最大的误区,了解他们将有助于有效地避免大数据的消极影响,并真正获得大数据带来的商业价值. 避免投资浪费,认清大数据

手游创业团队融资的10大误区

与http://www.aliyun.com/zixun/aggregation/10267.html">手游市场形势同样在快速变化的还有融资形势.作为2013年终系列盘点文章之一,今天葡萄君来说说手游初创企业在融资时的十大误区. 1.手游行业钱很多,我现在出来干肯定能拿到钱. 真相:钱很多,靠谱的钱不多.手游投资的第一波高峰已经过去了,现在外资基金对手游的投资已经收紧,国内背景的基金和一些大的游戏公司仍对投资手游初创团队保有较高的热情.而随着创业团队数量的增加,投资方对团队质量的要求也水

对PHP语言认识上需要避免的10大误区_php文摘

PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的.但是,你大概很奇怪的注意到有少部分的人发誓要离php远远的.但是令人更奇怪的是或者很震惊的说他们不用php并不是因为一些被证实的语言缺点.他们决定不用php,是因为误解.是的,你读到的那些是误解.让我们看看这些误解是: 1. PHP是一种面向对象语言,但面向对象并不彻底这完全不对.所有认为php不是彻底面向对象的程序员,尤其是Java程序员,都需要上一个PHP的基础培训:他们会发现PHP中大量面向对象的特

PHP语言需要避免的10大误区

PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的.但是,你大概很奇怪的注意到有少部分的人发誓要离php远远的.但是令人更奇怪的是或者很震惊的说他们不用php是因为一些被证实的语言缺点.他们决定不用php,是因为误解. 是的,你读到的那些是误解. 让我们看看这些误解是: 1. PHP是一种面向对象语言,但面向对象并不彻底 这完全不对.所有认为php不是彻底面向对象的程序员,尤其是Java程序员,都需要上一个PHP的基础培训:他们会发现PHP中大量面向对象的

豆浆海带牛肉最补钙?警惕补钙10大误区

补钙已经成为当下人们议论的一个热题,但是如何补钙,补钙有哪些误区,我们都不太在意,这使补钙经常以失败告终. 知道自己或许缺钙的人很多,经常服用补钙品的人也很多.可是,在膳食中该如何促进钙吸收,却不一定是每个人知道的.稍不小心,就有可能陷入误区当中,选择了错误的食品,结果妨碍了钙的吸收.常见的补钙误区,有哪些正好击中了你? 1.以为吃牛肉有利于骨骼 不少人多相信欧美人骨骼强壮是因为爱吃牛肉.事实上,很多吃牛肉甚多的人,正是钙缺乏相当严重的人.这是因为牛肉本身含钙极低所有的肉都是这样.同时,肉里面含