高效率的超大规模Flex开发

2012-03-27
浏览
导读:Adobe Flex开发与传统的Web开发有很多不同之处。正确的理解和利用这些不同之处,可以帮助我们 创建更丰富的用户体验,也可以反过来增加网站的可用性以及浏览和

Adobe Flex开发与传统的Web开发有很多不同之处。正确的理解和利用这些不同之处,可以帮助我们 创建更丰富的用户体验,也可以反过来增加网站的可用性以及浏览和更新速度。Flex还提供了大量的组 件和技术库来让Web开发更加轻松——它提供的强大工具要远远超过传统Web 2.0中的异步JavaScript和 XML(Ajax)应用。此外,Adobe公司最近发布的Adobe Flash Builder 4 beta(以前叫Adobe Flex Builder)中提供了许多新的和改进的工具,他们可以用来开发大规模的Flex应用程序。Flash Builder 4着重于提高开发人员的生产力以及设计人员和开发人员的工作流。

Flex开发中的关键要素之一是使用模块和运行时共享库(Runtime Shared Libraries,RSLs),这些 模块和库可以方便系统不同部分的并行开发以及客户端上高效的内存管理等等。另外一个关键要素是使 用Sprint BlazeDS集成,它大大简化了后台不同技术服务器端的开发和集成,如使用Java消息服务(JMS) 和Spring安全进行的通信。

以下是Flex开发中的一些关键要素:

利用Flex的不同之处。了解为什么Flex开发与传统Web开发有所不同,并利用那些不同之处让应用程 序从中获益。

Flex模块。了解Flex模块以及怎样模块化Flex开发和部署。使用Flex模块来解耦项目中的不同层次。

了解反模式和模式。 预先了解正确的应用程序反模式,这样你可以按照正确的架构模式实现优秀的 设计。

使用Spring BlazeDS集成项目简化开发。使用Spring BlazeDS 集成项目简化Java服务器集成。

有效地设计。与设计团队紧密合作,充分利用Flex和Adobe Flash的优势。

测试. 预先计划测试。

是什么让Web开发与Flex有所不同?

与传统Web应用程序不同,Flex应用程序开发更像传统的桌面应用开发。例如,整个应用程序会被下 载到客户端——这是一个庞大的下载,而且取决于应用程序如何组织。当然,有许多方法可以优化这个 过程,例如使用组件库或将工程分解成各个模块。

这套方法与传统的超文本标记语言(Hypertext Markup Language,HTML)编写的应用程序不一样— —即使它是用Ajax开发的。一个HTML的Web站点通常可以划分成不同的页面,以使得下载量非常小。并且 即使使用Ajax,下载量还是相对较小,因为大部分Ajax库本身就相对较小。使用这种方法可以让单个页 面的下载量比整个应用程序更小。

Flex与传统Web应用程序开发的另外一个不同之处在于,状态主要在客户端上维护。这超出了在Web应 用程序上使用Ajax控件,因为后者一般只在Web浏览器上维护少量的客户端状态。而现在,应用程序中的 所有状态都在局部变量中进行维护。

如果你还不太熟悉Flex的话,另外一个不同之处可能对于你来说是一个挑战。Flex使用了一个高度的 事件驱动编程风格,主要原因是Adobe Flash Player是单线程的,因此任何需要长时间运行的调用都需 要注册一个回调函数。单线程对于图形化用户界面(GUI)开发来说是有利的,因为它不存在死锁或者一 个线程窃取所有CPU周期,从而保持了GUI的响应。单线程还使得开发更加简单,因为你不需要处理多线 程编程。(还记得在Swing中处理线程的噩梦吗?)

Flex中用以处理事件的主要机制是函数指针,或者作为函数参数进行传递的闭包。这些指针可以是用 户为了某个异步事件结束时发生的事件或者提醒而注册的。(函数指针对于Java程序员来说很有挑战, 因为核心Java语言还不支持闭包。)

Flash基础教程 动画基础知识

flash as3.0 跨域的解决办法

网络相册开发(8)——Cairngorm架构浅析

Flex中PureMVC学习小结

Flex与.NET互操作(十六):FluorineFx + F