- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高效率的超大规模Flex开发
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语言还不支持闭包。)
Flex模块至关重要
Flex提供了一些选项可以将应用程序划分成模块,包括创建库以及主应用程序的子模块。通过将项目设计成层次化的形式,开发和编译都可以在单个的分支中进行。
模块化Flex项目的主要好处在于,这么做可以优化客户端上下载和启动的时间。应用程序的一小部分可以预先下载到客户端,而剩下的部分可以在后端按需很进行加载。此外,模块还可以被加载和卸载,以减少客户端上的内存占用量。
模块化Flex项目的另一个主要好处是,它可以让开发过程更容易模块化。它允许开发人员在不同的模块和库上进行工作以避免开发团队的死锁发生。
然而构建大型Flex应用程序的一个挑战之处在于,编译过程所花的时间要比大部分程序员熟悉的Java编译时间要慢很多。重新编译一个大型Flex应用程序可以花上好几分钟。想要优化这个过程,你可以创建分离的库并且只编译你当前工作的应用程序部分。
一种方法是采用S
文档评论(0)