[转载]一名优秀的Flex开发者需要知道的10样东西

简介: 原文: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内建的容器和组件是不够的,而且是远远不够。

原文: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点)



8、样式/皮肤

不要忘记Flex是一种图形用户界面技术,因此存在一定的设计期望。作为一名Flex开发者 ,你应该知道如何通过CSS样式或者其它方式来自定义你的Flex应用程序的外观。

要使用Flex 4,就没有借口。花点时间来开发一下你的右脑,这是一次不错的改变,并且它可以让你与其它Flex开发者区分开来。



9、至少一种Flex结构框架

大多数Flex结构框架都实现了MVC设计。并且,许多框架都支配着你的代码的组织方式和包装方式。

尽管有些人会认为使用框架是没有必要的,但是我相信即使只使用一个框架也会让一个Flex开发者受益匪浅。简单地看着一项技术(好的或坏的)使用框架来解决一些结构性问题能帮助作为开发者或架构师的你成长。

并且,你也不能否认如果你有使用框架的经验,那么你的职位竞争力将会在本质上有所提高。Jess Warden最近告诉我“只有少数商店不使用框架,但这是罕见的。不管你喜不喜欢,使用框架已经成为一种'时尚'。”我同意他的观点。



10、组件的生命周期和显示列表

之前我是觉得不用去学Flex组件生命周期和显示列表的,直到我第一次写自定义组件的时候。在此之前,我都是使用内建的Flex组件并且很高兴地让MXML帮我处理显示列表。我从没使用过addChild、createChildren或者commitProperties方法,我使用了creationComplete事件来做全部事情。

我第一个自定义组件使用了许多异步事件,我并不能预测事件处理的顺序。但是在我学习了Flex组件生命周期方法之后,我重新掌握了控制。

这些生命周期方法早就有了。学习一下它们是怎么工作的,并且利用它们来帮助你解决问题。你掉的头发越少,你的生活会更加美好。

目录
相关文章
|
消息中间件 分布式计算 Kafka
Flink 1.16.2 版本在流式读取 Iceberg upsert primary key 表方面存在一些限制
Flink 1.16.2 版本在流式读取 Iceberg upsert primary key 表方面存在一些限制【1月更文挑战第14天】【1月更文挑战第69篇】
222 3
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
518 3
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
12月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
603 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
存储 运维 安全
Greenplum闭源?平滑迁移到 AnalyticDB 开启Data+AI新范式
知名开源 MPP 数据库 Greenplum 由于其丰富的企业级特性和出色的数据处理能力成为很多企业构建数仓的首选。近期 GP 公开 Github 仓库无法访问仅保留只读归档代码,业界纷纷猜测 GP 即将闭源。云原生数仓 AnalyticDB PostgreSQL 版完全掌控内核代码,完全兼容GP语法,全自研计算及存储引擎较比开源GP有五倍性能提升,全自研企业级特性在实时计算、弹性扩展、安全增强、高可用等方面实现对GP的全面超越,并在数仓能力上扩展了向量检索及一站式 RAG 服务,帮助企业快速构建 AI 应用、开启 Data+AI 新范式。
59496 3
|
存储 SQL 数据可视化
阿里云 EMR Serverless StarRocks3.x,极速统一的湖仓新范式
EMR StarRocks 线上公开课第1期 ,直播主题:EMR Serverless StarRocks3.x,极速统一的湖仓新范式。
1262 1
|
机器学习/深度学习 分布式计算 并行计算
当 Mars 遇上 RAPIDS:用 GPU 以并行的方式加速数据科学
在数据科学世界,Python 是一个不可忽视的存在,且有愈演愈烈之势。而其中主要的使用工具,包括 Numpy、Pandas 和 Scikit-learn 等。 Mars 在 MaxCompute 团队内部诞生,它的主要目标就是让 Numpy、pandas 和 scikit-learn 等数据科学的库能够并行和分布式执行,支持通过 RAPIDS 平台用 GPU 加速数据科学。
2295 0
当 Mars 遇上 RAPIDS:用 GPU 以并行的方式加速数据科学
|
Kubernetes Cloud Native Apache
FFA 2023 专场解读:流批一体&平台建设&云原生
完整议程已公开,期待 12 月 8-9 日与你 Flink Forward Asia 2023 相会!
815 3
FFA 2023 专场解读:流批一体&平台建设&云原生
|
缓存 监控 前端开发
如何在 Linux 命令行中检查 CPU 使用率
【5月更文挑战第8天】
952 0
|
存储 Java 测试技术
深度优化 | PolarDB-X 基于向量化SIMD指令的探索
本文将介绍PolarDB-X对于向量化SIMD指令的探索和实践,包括基本用法及实现原理,以及在具体算子实现中的思考和沉淀。
|
存储 分布式计算 Kubernetes
Spark+Celeborn:更快,更稳,更弹性
本文整理自阿里云 EMR Spark 团队的周克勇(一锤),在 Spark&DS Meetup 的分享。
69489 0
Spark+Celeborn:更快,更稳,更弹性