在这篇新闻中,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的内容以了解更多。

转载于:https://www.cnblogs.com/AndySong/archive/2009/05/17/1458589.html

构建Flex应用的10大误区相关推荐

  1. 影响网站转化率的10大误区(上)

    影响网站转化率的10大误区(上) 24 十二月 2009 38 Comments [导言]网站分析的核心内容之一是对转化的实现和优化.本文探讨影响网站实现转化的10大误区,以帮助网站设计者和网站所有者 ...

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

    曾经我们帮助客户进行软件性能测试的时候,客户不解的问,不是必须通过功能测试后才可以测试性能吗?可能有很多人会存在这样的疑问,在这里,我们的多位专家根据多年经验总结出性能测试的10大误区,希望能给大家带 ...

  3. 有关手机电池的10大误区

    阁下有没有遇到一些老派用户说起智能手机电池来一套一套却又土得掉渣?下面为大家揭密10大误区. 额滴个神啊,手机电池带着多少的神话色彩,多少的传奇色彩--多少的无奈.手机电池是否够长对我们影响颇大,而别 ...

  4. Go:构建应用程序的10大框架

    文章目录 简介 一.CLI 命令(spf13/cobra) 二.配置读取器(spf13/viper) 三.Web 框架(labstack/echo) 四.依赖注入(uber-go/fx) 五.Swag ...

  5. Google SEO优化的10大误区

    以下是 Google SEO 优化的十大误区: 1.关键词堆砌: 过度使用关键词,使得内容不自然,难以阅读,同时也会被搜索引擎认为是垃圾信息,影响网站排名. 2.内容质量差: 质量差的内容会降低用户的 ...

  6. php mktime 时间不对_PHP 语言需要避免的 10 大误区

    PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的.但是,你大概很奇怪的注意到有少部分的人发誓要离php远远的.但是令人更奇怪的是或者很震惊的说他们不用php是 ...

  7. ISO认证咨询解读 ISO9001认证的7大知识点和10大认证误区

    ISO认证咨询解读 ISO9001认证的7大知识点和10大认证误区 第一知识点:什么是ISO9001质量管理体系认证? ISO9001质量管理体系认证是ISO认证系列办理排在首位的ISO证书,根据官方 ...

  8. 猛增 174K Star!前端最流行的 10 大顶级开源项目!

    大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 关于猫哥,大家可以看看我的年终总结 前端工程师的 2020 年终总结 - 乾坤未定,你我皆黑马. 今天给大家推荐 2020 年最流行 ...

  9. 前端趋势榜:上周最热门的 10 大前端项目 - 210327

    大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 关于猫哥,大家可以看看我的年终总结 前端工程师的 2020 年终总结 - 乾坤未定,你我皆黑马. 猫哥从 2016 年加入 GitH ...

  10. 2013 年开源中国 10 大热门 Java 开源项目

    2013 年结束了,我们根据过去一年的用户访问.交流分享和项目本身的更新频度等诸多角度对收录于开源中国的近三万款开源软件进行统计,从而得出前 XX 名最受欢迎的开源软件,仅供参考. 本排行榜主要是针对 ...

最新文章

  1. 浅谈“闭包”,什么才是“闭包”思想!—— javascript
  2. Word英文字符间距太大 中英文输入切换都不行
  3. python代码获取每一天在一年中出现的次数(星期)
  4. 网络通讯程序整理(一)
  5. hbase 单机连接hadoop_随手搭hadoop+hbase(mac单机)
  6. 线程之线程共享成员变量的几种情况
  7. oracle的存储过程 替换,为什么在存储过程中,变量替换无法使用索引?
  8. 轨迹预测演变(第1/2部分)
  9. android打印intent flag,Android flag详解
  10. Python中random模块生成随机数详解
  11. ehlib的DBGridEh控件中使用过滤功能的方法
  12. FreeSWITCH 初步
  13. 自媒体短视频采集工具,采集多个平台的视频
  14. 2023南京审计大学计算机考研信息汇总
  15. next_day函数用法
  16. 历史名酒元氏益成永——宋曹贡酒
  17. linux C -- ftok函数
  18. python画蜡烛图_Python量化交易-绘制蜡烛图 !这个图不像你的钱哦!
  19. oracle erp 库存账龄,系统管理、年结后,新年度做账龄分析,原来几年的账龄-用友U8...
  20. kubernetes之ReplicaSet

热门文章

  1. UNBUNTU下与VirtualBox的WINDOWS共享文件夹
  2. UBUNTU上安装numpy
  3. 领导公开对你有成见,关键在于是否影响公司决策
  4. C# string 判断字符串是否是中文
  5. 我的世界服务器皮肤怎么用文件夹,我的世界怎么用皮肤文件,怎么通过文件夹更改皮肤...
  6. 2019 序列号_苹果序列号知识扫盲:iPhone序列号含义与查询真伪全攻略
  7. python打包工具比较_Python 打包工具对比,Nuitka vs Pyinstaller
  8. 工业互联网发展驶入快车道
  9. 【死磕 Spring】—– IOC 之 bean 的初始化
  10. SQLserver数据库还原后显示正在还原