flex缺点,flex作用

  flex缺点,flex作用

  作者乔恩罗斯译者张龙于2008年4月25日上午10: 07发布。

  在这条新闻中,Adobe的詹姆斯沃德与InfoQ.com一起,为您带来了另一个top 10 Flex(最新的top 10 Flex)。Flex是一个开源应用程序开发框架,用于构建在web(使用Flash Player)或桌面(使用Adobe AIR)上运行的富互联网应用程序。简而言之,Flex是一个强大且易于使用的框架,但今天我们来看看在构建Flex应用程序时会犯的常见错误。

  对于那些刚接触Flex的人,请阅读InfoQ最近的Adobe Flex基础知识,以快速了解该框架。以下是一些容易犯的错误:

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

  从Web 1.0向RIA过渡的最大挑战之一来自于思维模式的改变。Flex为开发人员提供了一个高级组件库,使他们能够完成许多以前不可能完成的任务。但很多时候,Flex的这种能力被忽略了,它只被用来实现更传统的Web 1.0应用。

  构建Web 2.0应用程序不仅仅意味着页面的局部刷新和旋转的圆形图标。例如,Flex开发人员应该使用矢量图为用户提供数据的可视化表示以及对丰富的应用程序流的高级控制。最近,斯蒂芬让桑在InfoQ.com上讨论了这个问题:

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

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

  虽然Flex确实提供了一个优秀的平台来改善用户体验,但保持用户习惯也很重要,比如后退按钮、书签和自动完成。

  Flex 3包括一个新的深度链接功能,支持后退按钮和书签。你可以去labs.adobe.com了解更多。有许多组件可以自动完成。您可以使用Adobe Exchange中的自动完成输入组件。

  3.使用太多容器会导致应用程序变慢。

  Flash Player使用分层对象图,类似于HTML的文档对象模型(DOM)。容器嵌套得越深,渲染的时间就越长。Adobe的Flex开发人员中心有一篇文章讨论了关于Flex性能的最佳实践,包括容器的使用细节:

  Flex最大的性能风险来自容器的滥用。过多的嵌套容器会影响应用程序的性能。这是Flex开发者面临的最严重的性能风险,但幸运的是,这是完全可以避免的。

  4.使用XML而不是其他更优化的协议会导致应用程序运行缓慢。

  Flex为开发人员提供了许多在Flex客户端和服务器之间传输数据的选项,包括AMF3、XML、SOAP和直接HTTP请求。沃德解释了这些技术在他的普查应用中的用途和性能。

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

  如果你不选择BlazeDS,那么你也可以选择Hessian。Hessian为二进制web服务协议提供ActionScript/Flex支持。

  5.试图雇佣一名Flex开发人员

  现在很难找到有经验的Flex开发者。Flex现在处于Java在20世纪90年代的位置。Flex开发者已经供不应求。因此,很难找到有经验的Flex开发人员。然而,这为Java开发人员创造了一个很好的机会来扩展他们的技能,从事一项新的有趣的技术。很多找Flex开发人员的公司直接用Flex培训Java或者其他web开发人员几个星期,非常成功。对于熟悉Web和GUI编程的开发人员来说,学习Flex语言和API很容易。

  6.特效的过度使用

  开发者可以通过Flash轻松添加特效。但是要确保特效有意义,和背景相匹配。否则只会让用户反感。特效的时机也很重要。交互设计器可以帮助我们决定什么时候应该使用特效,什么时候不应该。交互设计师还可以为我们推荐最好的特效类型、间隔和最简化的功能。

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

  大部分特效简直太长了。它们不仅长,而且速度慢,甚至具有攻击性。关掉它。如果这事发生在我身上,我会转身离开,因为我真的很讨厌这种等待。

  别误会,我不反对特效。我只是反对那些太长或太多的特效。每个特效都可以根据其用途进行分解。找到你特效的目的,然后利用它。

  7.没有建立企业生态系统。

  就像其他软件项目一样,为您的Flex应用程序构建一个企业生态系统非常重要。

  目前,测试驱动开发(TDD)是大多数企业项目的首选。对于Flex,FlexUnit框架可以用来编写单元测试。在Adobe的开发者网络上,尼尔韦布讨论了TDD和FlexUnit对Flex开发者的使用。此外,Flexcover可用于测量代码覆盖率。

  当多个开发人员一起工作时,持续集成被证明是一个好的实践。和Java应用类似,有相应的Ant和Maven插件来持续集成你的Flex应用。

  8.没有使用整个框架

  Adobe Flex中有许多可选功能,您应该考虑在您的应用程序中使用它们。例如,运行时共享库(RSL)可以用来减少应用程序的大小。

  您可以将共享资源集成到单独的文件中,以便它们可以在客户端单独下载和缓存。通过这种方式,可以减小应用程序生成的SWF文件的大小。许多Flex应用程序可以在运行时加载这些共享资源,每个客户端只需下载一次。这些共享资源被称为运行时共享库。

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

  9.使用复杂的渲染器会降低日期网格的速度

  DataGrid的现成ItemRenderer已经过很好的优化。误区3讨论嵌套太深的容器的性能。在Flex中,有一个地方很容易造成容器的深度嵌套,那就是DataGrid的项目渲染器。由DataGrid呈现的项目渲染器的数量等于可见行数乘以可见列数。定制的数据网格和列表项渲染器应该得到很好的优化。当需要在项目渲染器中使用复杂的布局逻辑时,最好使用UIComponent(或其他底层类)并手动定位单元格的内容。

  10.没有准备离线申请。

  RIAs的传统模型在于浏览器。然而,像Adobe AIR和Google Gears这样的技术可以让应用程序离线运行。如果用户需要能够脱机使用应用程序时,您还没有准备好,那么更改您的应用程序以支持脱机功能将会非常困难。通常,在web应用程序中,业务逻辑存在于服务器端。在离线RIA中,业务逻辑必须到达客户端。为了使应用程序同时支持离线和在线,需要提前决定一些业务逻辑的位置。

  查看有关InfoQ.com Flex的内容,了解更多信息。

  查看英文原文:构建Flex应用时的10大错误

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: