原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html
翻译:http://bbs.9ria.com/viewthread.php?tid=54144&from=recommend_f
要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不够的,而且是远远不够。
下面是我对这个问题的一些看法......并且给出了一些资源和关键字,你可以通过Google轻易地找到这些关键字。
1、面向对象编程(OOP)
ActionScript 3是Flex的基石,它是一个完全面向对象的语言。尽管面向对象这个概念并不是很好理解,但是面向对象编程是学习的Flex的一个前提条件。如果你之前有面向对象编程(Java, C#, Ruby等)的经验的话,那么你就可以很快入门。如果没有的话,那么你须要迟早找本OOP的书籍来学一下。
注意:有些人可能会问 - “那么设计模式呢?”让我们一步一步来,好吗?你们自己先学一下类和对象、接口、继承、组合、多态、封装等。只有学完这些之后你才可以去学习设计模式。事实上,如果我要写一篇名为“一名伟大的Flex 开发者须要知道的10个内容”的文章话,那么设计模式将会是第一个。
2、ActionScript/MXML
ActionScript是与MXML一起配合来开发Flex应用程序的。MXML是一种用XML写成的基于标签的声明性语言。每一个标签都映射到一个与之相对应的ActionScript类。MXML主要是用来对用户界面进行布局,而ActionScript则用来实现业务逻辑。当然存在例外的情况。
Flex Framework包括上百个ActionScript类和接口来帮助你开发Flex应用程序。你对ActionScript以及MXML的熟练程度直接影响到你的技术水平。
注意:你应该对Flex Language Reference非常熟悉。作为一个Flex开发者,你基本上每天都要用到它。
3、调试
开发者的很大一部分时间都是在调试。明显地,调试需要找到错误的根源。但是,调试也是学习新语言很好的一种方式。
很幸运地,网上有许多可用的工具来帮你进行调试。花点时间来学习使用这些工具。很快你所花的时间就会给你带来效益了。
4、事件驱动编程
Flex应用程序是事件驱动的。每一个动作都是一个异步事件产生的结果。
作为一名Flex开发者,你必须知道怎么样去响应事件、怎么样去创造事件和抛出事件。为了实现这一点,你必须对Flex的事件结构有充分的了解,也就是说,你要熟悉以下几点概念:
- 内建事件(Flash Player或者Flex Framework事件)
- 自定义事件(由开发者定义的继承自Event类或其子类的事件)
- 事件抛出,事件广播(查看EventDispatcher类和它的dispatchEvent方法)
- 事件侦听,事件处理(查看EventDispatcher类和它的addEventListener和removeEventListener方法)
- 事件流(捕获、目标和冒泡阶段;target与currentTarget的区别)
- 事件默认行为(查看Event类及其子类和preventDefault方法)
5、数据绑定
表面上,数据绑定很容易理解。把一个属性的值与另一个属性的值绑定到一起。当源属性的值发生改变时,目标属性的值也会改变。
然而,如果随意使用数据绑定的话是会影响程序性能的。充分了解数据绑定能够帮助你决定什么时候适合用数据绑定,什么时候不适合。
Flex Tips - Using Bindable Metadta Events
Michael Labriola's presentatin entitled Diving in the Data Binding Waters
6、项目渲染器(item renderer)
设计优秀的Flex应用程序的一个特点是其显示数据的方式在视觉上令人信服。Flex提供了一些基于列表的负责显示数据的控件(DataGrid,List, TileList, HorizontalList等)。然而,只有使用项目渲染器才能让这些基于列表的控件自定义数据显示方式。
7、访问远程数据
你见过哪些应用程序是不用与数据打交道的吗?我没见过。学习如何使用HTTPService、WebService和RemoteObject来获取数据。一个Flex结构框架或许可以帮你(看第9点)
- Retrieving and handling data with HTTPService
- Retrieving and handling data with WebService
- Retrieving and handling data with RemoteObject
8、样式/皮肤
不要忘记Flex是一种图形用户界面技术,因此存在一定的设计期望。作为一名Flex开发者 ,你应该知道如何通过CSS样式或者其它方式来自定义你的Flex应用程序的外观。
要使用Flex 4,就没有借口。花点时间来开发一下你的右脑,这是一次不错的改变,并且它可以让你与其它Flex开发者区分开来。
9、至少一种Flex结构框架
大多数Flex结构框架都实现了MVC设计。并且,许多框架都支配着你的代码的组织方式和包装方式。
尽管有些人会认为使用框架是没有必要的,但是我相信即使只使用一个框架也会让一个Flex开发者受益匪浅。简单地看着一项技术(好的或坏的)使用框架来解决一些结构性问题能帮助作为开发者或架构师的你成长。
并且,你也不能否认如果你有使用框架的经验,那么你的职位竞争力将会在本质上有所提高。Jess Warden最近告诉我“只有少数商店不使用框架,但这是罕见的。不管你喜不喜欢,使用框架已经成为一种'时尚'。”我同意他的观点。
10、组件的生命周期和显示列表
之前我是觉得不用去学Flex组件生命周期和显示列表的,直到我第一次写自定义组件的时候。在此之前,我都是使用内建的Flex组件并且很高兴地让MXML帮我处理显示列表。我从没使用过addChild、createChildren或者commitProperties方法,我使用了creationComplete事件来做全部事情。
我第一个自定义组件使用了许多异步事件,我并不能预测事件处理的顺序。但是在我学习了Flex组件生命周期方法之后,我重新掌握了控制。
这些生命周期方法早就有了。学习一下它们是怎么工作的,并且利用它们来帮助你解决问题。你掉的头发越少,你的生活会更加美好。