Flex开发者学习和进阶过程探讨

时间:2022-06-18 17:44:59

   有道是,学无止境,无论您是刚刚进入Flex开发领域的菜鸟,还是已经具备了相当的开发经验的老鸟,在您的面前,永远会有您还未涉足的领域,或称之为知识盲区。好像是有这么句名言,当您知道的越多,您会发现自己不知道的越多。这句名言也完全适用于从事Flex开发工作的我们。所以本文不使用高手这个名词,成为高手很难很难,我们大部分人即使具备了很多的经验,也只能称之为老鸟而已。

 
 本文试图分析我们在Flex开发中,应该走一条什么样的学习曲线。或者说,对于处于不同阶段的开发者(初学者,中级开发者,高级开发者),各自应该学习和关心哪些内容。这个分析是很难的,因为这跟开发者自身的知识积累和技术素养有很大关系,比如同样是初学者,一个还没有具备编程能力的人,和一个Java老手,进步的速度是有很大差异的。本文将基于作者的一些体会,尝试展开对这方面的探讨,如有疏漏,欢迎拍砖和补充。
 
 1.确定您所处的阶段

    请从下面的表格中,选择一个最近接您的现状的阶段,然后参阅相关的学习建议:

   Flex开发者学习和进阶过程探讨


2.学习建议

   对于不同阶段的开发者,所需关心的重点内容各不相同;经过一定时间的学习,您可能已经跳跃到了其它阶段,请重新参阅此表,斟酌自己的定位,寻找相关的建议。

 2.1 不具备编程基础

   对您来说,学习Flex可能会很难,这并不是因为Flex难学(Flex入门是很容易的),而是您欠缺的基础太多;建议从计算机基础学起,至少电脑操作要熟练,然后选择一门面向过程式的语言,比如C,务必理解清楚程序的执行过程,另外Web领域的一些常规技术,包括B/S结构应用数据的请求过程,HTML,JavaScript,XML,CSS等都要学习和了解。总而言之,就是要打好基础,基础不牢固,后面的也不好学。此步完成,进入下一步。

2.2 具备AS3之外的编程基础
  您已经有了编程基础,但是没有AS3开发经验,所以您需要先停下来,把AS3学好,因为Flex框架是基于AS3构建的,Flex项目中的逻辑控制也依赖于您编写的AS3代码,所以在学习Flex之前,先把AS3学好是很有必要的;这里需要先明确您是否具备了OOP(面向对象编程)的基础,如果您是Java或C#等OOP语言的开发者,那这一点就毋庸置疑了,由于ActionScript 3也是一门OOP语言,您所要重点学习的是其中的语法细节和API,与您之前所用语言的一些差异,这个过程并不难,也不需要多长时间,您很快就能应用和掌握。
  如果很不幸您只会编写面向过程的语言,不熟悉OOP,那么没关系,您没必要先去恶补一门Java等OOP语言,仍然可以直接学习AS3,但您需要花费更长的时间,因为您需要完全理解AS3中OOP的代码编写方式。

  建议学习资料:
 书籍《ActionScript 3.0殿堂之路》黑羽著

2.3 具备AS3基础和少许Flex基础
   您可能已经是一位有经验的AS3程序员(做过游戏,或者Minisite之类的项目),或者只是为了学习Flex而学习了AS3,无所谓,您可以开始学习Flex了。不过有比较好的AS3开发经验的话,学习Flex将更容易,也更容易理解和掌握Flex中的逻辑控制和事件处理机制。
   您需要学习和掌握的内容包括:
Flex Framework概念,MXML和AS3的关系,MXML和AS3编码规范,Flash Builder的使用,不同的项目类型,Flex常见组件的使用方式,容器,布局,导航,状态,自定义组件和项目渲染器,事件通讯,数据集合和绑定,数据验证和格式化,RPC数据通讯方式,组件样式和皮肤,动画和特效。
   学完这些并能熟练应用,且至少做过3个月以上实际项目的话,您已经成为一名初级Flex程序员。
  

  建议学习资料:
  免费视频教程:《一周学习Flex4》RIAMeeting翻译
  组件学习:TourdeFlex
  书籍不再推荐了,入门的书有不少,大家可以自己选择

2.4初级开发者
  您已经具备稳固的Flex基础和一定的开发经验,那么到了该升级自己到下一阶段的时候了。您需要掌握一些Flex开发中更深层次的应用技巧,才能进阶到下一阶段:
 
  1. 如果您之前一直是基于Flex SDK 3做开发,那么建议您尽快学习Flex SDK 4的新内容,并掌握将现有Flex3项目迁移到Flex4的能力;

  2. 如果您之前只是完成一些小型Flex项目,那么您可能还没有涉及到对项目进行模块化拆分(Flex中的Module,RSL等),要知道在大中型的Flex项目中,模块化拆分是必不可少的,并且拆分后的模块如何制订加载和销毁策略,如何完成事件通讯,如何避免大量模块加载引起的内存泄漏等等,这些都是您进阶到下一阶段必须掌握的;

  3. 一些不良的编码习惯,或一些隐藏的编码缺陷都可能造成系统崩溃或内存泄漏,所以您需要掌握在Flex项目中,优化MXML和ActionScript代码的各方面的知识

  4. 掌握在Flex项目中实施国际化的知识
 
 
  5. 您还需要熟悉MVC设计模式,掌握如何为当前项目制订一套最合适的MVC实施策略,注意MVC最重要的是思想,重要的是解决当前项目架构设计方面的问题,而不是生搬硬套一套MVC框架到您的项目 里;

  6. 您需要熟练使用一种或多种架构框架,比如IoC框架中的Parsley或Spring AS,并深刻理解其机制,因为很难有框架完全适合您的项目需求,通常我们会基于一个或多个框架做一些扩展和补充,使其更切合项目需求

  7. Adobe AIR技术,它提供了桌面API,让您可以扩展项目的功能,增强用户体验,目前很多优秀的RIA应用都是基于AIR的,所以建议您掌握AIR的开发能力

  8. 深入到ActionScript的层面了解Flex内部运作机制,包括编译过程,组件的设计模式,生命周期,皮肤和样式的注入原理等等,了解这些内部机制,将有助于您更全面的掌握Flex
 
  这些知识或技巧其实都非常偏重于实践,所以您需要有大量的项目实践经验,才能完全理解和掌握上述的内容。达到这些要求,您已经是一位中级开发者。
 
  参考学习资料:
  官方:Adobe开发者中心(尽量去英文站,中文站内容较少)
  民间:各个社区(RIAMeeting9RIAAIRIA等)等会有一些这方面的资料,但不成体系,需要大家自己多关注了。

  2.5 中级开发者
  您已经是Flex基础稳固,熟悉模块化开发,熟悉架构框架,能实施性能优化的中级开发者,那么下一步,您需要提升自己全面掌控一个大型Flex企业级项目开发的能力了。也就是说,作为一个士兵,您需要提升自己为将军了(开个玩笑Flex开发者学习和进阶过程探讨),您需要掌握的可能包括:
   
  1. 与后端技术的整合能力:虽然Flex是前端技术,尽管您之前在前端干的还不赖,但如果不熟悉后端,您将无法获得更大的提升,也就是说,如果您只熟悉前端,那这里所定的中级就是您的最终境界了。对于Java来讲,BlazeDS或LCDS是较好的选择,如果是.NET,则有WebORB等,您需要掌握Flex前端和后端技术的架构和整合能力。

  2. Flex项目的整体架构设计和实施:包括Flex前端的架构设计和后端的架构设计,通常技术实现很容易,但设计一个良好的架构是很难的,特别是要适用于团队协作,如何拆分才能保证团队发挥出最大的战斗力,是您现在需要掌握的

  3. 项目管理/自动构建/测试:如何在团队内部实施一套行之有效的项目管理机制(比如实施敏捷开发),如果选择构建工具,搭建构建服务器,实施自动构建和单元测试,实施版本控制,代码质量评估等等,都是您需要了解和掌握的

2.6 高级开发者
   能到达这一步,可真不容易,恭喜。下一步要学什么,看您自己的兴趣吧,如果您对Flash Player内部运作原理感兴趣,可以去下载AVM2的开源代码,改造成您自己的虚拟机Flex开发者学习和进阶过程探讨

3.总结
   由于ActionScript和Flex都是入门门槛较低的技术,所以如果我们来画学习曲线的话,前面的部分是很平滑的,但随着时间推移,后面的提升则对开发者本身的要求越来越高,也越来越有挑战,曲线就变陡了。
   作为开发者,我们还是要保持对知识的渴求和挑战自己的欲望,活到老,学到老。套用乔帮主的一句话,作为本文的结束:
Stay Hungry, Stay Foolish

资料下载:

Flex代码规范

Flex开发者学习和进阶指南


    特别说明:本文转载自瑞研社区觉得本文写的不错,特转载过来,纯当学习摩之用。如有冒犯,请留言,本人会及时删除文章,敬请谅解