2009年1月28日星期三

【文章】一个新手眼里Flex开发的层次

【文章】一个新手眼里Flex开发的层次——
啸风子 于 2009年1月28日星期三 15:33 发表于 啸风子Flash站点(http://tigerrrflash.blogspot.com/)

----------------------------------------------------------------------

一个新手眼里Flex开发的层次

创建日期:20090128
更新日期:20090128

序——

因为我不是计算机或软件相关专业出身的,很多知识都靠自学,结果经常感到迷茫,不知道做什么,怎么做。没有与实际项目或者公司接触过,是我最大的障碍。像现在,我已经毕业了,一个人在外地找工作,周围都没认识的相关专业的人,能接触的只有网络,很容易迷茫。好在网络上几乎什么都有,只要自己善于搜索,就能得到自己需要的知识和朋友。为了摆脱迷茫,我给自己想做的Flex开发分了下层次,前途也就清晰明朗多了。现在我把自己所做的分析结果发出来,希望能对和我一样迷茫的新手有所帮助。

Flex开发概述——

从以下几点来对Flex开发做下概述。

为什么要做(Why):客户有项目需求,或者自己想做产品。

做什么(What):基于Flex的应用软件,主要是客户端应用,包括Web(Flash Player)、桌面(AIR)两个平台。必要时,也需要开发非Flex相关的程序。

怎么做(How):使用用例等工具做需求的分析,使用UML等工具做软件系统的分析设计,使用Flex SDK或Flex Builder等工具编码实现,以及测试、部署等。以上步骤可以不断迭代。

谁来做(Who):Flex开发者。复杂的项目需要团队合作,安排好分析、设计、实现、测试等任务。

以上是很简单的概述,以下将做详细的分析,但是不按照以上方式来讲,而是以符合我自己学习需要的方式来讲,即按照内容层次来讲,并结合我的练习项目“我的世界”和新手学习建议。关于项目“我的世界”,可以见我的相关文章,如此文:《“我的世界”项目分析之用户角度》,网址:http://tigerrrflash.blogspot.com/2009/01/blog-post_25.html。

层次综述——

分层分类有利于分工合作。比如IT,可以分为:硬件层、系统软件层、应用软件层等。比如一个信息管理系统,可以分为:客户层、服务层、数据库层等。

我现在要讲的层次是我根据自己需要划分的,具体包括:战略层、应用层、功能层、平台层,这些层次的划分并不是严格的,界限模糊。比如,加解密对于网站开发者来说属于功能层,但是对于专业加解密软件开发者来说就属于应用层了。因此,层次划分只作参考,不必苛求。

战略层——

战略层指的是比较高层的非技术性的内容。包括组织管理、资源、市场营销、发展前途等。在决定做一个应用前,比如下载软件,就要考虑这些问题:是否有足够人力物力来完成,是否有前途,市场是否饱和了,对自己找工作是否有帮助等。

战略层涉及很多知识,包括管理学、心理学、市场营销、当前社会状况等,还有很多专业性的知识。比如如果做一个教学系统,那么,就要了解些教育学知识和教育学现状。

项目“我的世界”战略层的部分描述:

人们需要个性化的网络展示,现有的博客个性化能力不是很强。即有发展前途。

基于Flex的RIA可以创造更有表现力的展示。即适合Flex。

即使是一个新手,也可以为增加博客等的表现力做点工作。即有人力物力。

等等。

新手学习建议:

对一些成功应用的战略分析。可以找一些资料,也可以自己思考分析。比如研究Facebook成功的社会学心理学因素。

心理学资料。经典心理学教程,如戴维.迈尔斯的《社会心理学》,里面案例比较多。

经济管理资料。了解些知识如长尾理论等,还是很有好处的。

等等。

应用层——

应用层指的是软件系统的具体应用内容。简单的说,应用层指的是做什么,比如,教学系统、电子商务、博客、网络游戏等,就属于应用层的内容。

应用层是软件开发的关键部分,要做好从大概描述到详细分析和设计的工作,其间要使用软件工程方面的知识,利用好UML等工具,还要了解一些专业领域的知识,比如做教学系统要了解教学的基本过程,做游戏要了解游戏设计的基本知识。

项目“我的世界”应用层的部分描述:

博客展示应用:利用博客网站的接口,读取博客信息,用3D层叠的形式展现博客,并能方便的放大缩小。热门博客可以突出显示。

相册展示应用:利用图片网站的接口,读取相册图片,用3D层叠的形式展现照片。并且可以添加装饰性图案,对照片做些处理(旋转、缩放等)。

装饰性应用:加个可爱的动画精灵,增加吸引力。

等等。

新手学习建议:

软件工程知识。比如面向对象分析与设计、软件开发流程、文档撰写方法、注释撰写方法、编码规范等。我看过的有《面向对象分析与设计(UML 2.0版)》、《编写有效用例》等。

应用领域知识。比如游戏开发需要游戏设计的知识,RIA开发需要Web设计开发知识等。我以前看过一些游戏开发的书,现在做RIA,就要找些Web设计与开发的书来看了。

分析现有成功应用。比如Facebook的界面设计、结构设计等,比如分析某个RIA网站的3D层叠效果等。与战略层不同,现在更偏重于技术。

等等。

功能层——

功能层指的是程序的功能,一般指常用的功能。比如,用户界面、加解密、网络传输等。拿游戏来说吧,功能层的内容还可以有血槽、全屏功能、角色移动等。功能层的程序一般可以做成类库,可以重复使用。

项目“我的世界”功能层的部分描述:

用户界面,加解密,3D层叠功能,图片处理功能,动画精灵,各个网站的API使用方法。

应用层描述需要什么功能,功能层描述功能怎么实现,可以找现有类库,可以自己开发。

等等。

新手学习建议:

学习、使用各种类库。包括Flex框架类库以及很多常用的功能类库。如果能复用优秀的类库,就不用自己费心开发了。必要时可以修改(开源的情况下)。

开发自己的类库。如果需要用到的功能没有现成的类库,或者类库费用太高,而自己又经常使用,那么可以自己开发类库。

模仿功能。如果发现别人开发的某种功能很好,但是不能直接借用,那么可以模仿开发自己的功能。比如觉得某软件的菜单很不错,可以自己模仿开发一个,以备自己以后使用或者分享给别人。

等等。

平台层——

平台层指软件开发的基础平台。如Flash平台、Java平台等。平台跟软件的具体功能无关,比如加密算法,既可以用ActionScript 3.0实现,也可以用Java实现。但是平台也很重要,比如Flash平台适合客户端开发,Java平台适合服务器端开发等。

项目“我的世界”平台层的部分描述:

用户界面使用Flex开发,动画精灵使用Flash开发,服务器端程序使用Java平台。

等等。

新手学习建议:

基础语法。如ActionScript 3.0语法。

工具使用。如Flex Builder 3的使用方法。

平台官方基础类库的学习。如Array的使用方法等。

对平台的分析。比如Flash能做什么,Flex能做什么等。

等等。

结语——

Flex开发新手,尤其是非计算机、软件相关专业出身的,需要的不仅仅是Flex相关的知识,还有很多知识要学,软件工程、应用领域知识、Web设计、数据结构和算法、做人做事等等。更重要的是,实践经验。很少有书讲Flex开发的实践经验,关键还要靠自己不断的动手,以及有经验者的指导:-)。

关于我——

网名:啸风子。真名:陆仕桑。

有事欢迎和我联系:-)。邮箱:lushisang@gmail.com。QQ:531042894。博客:http://tigerrrflash.blogspot.com/。

踏踏实实做事,潇潇洒洒做人。

1 条评论: