软件开发的一些感想(五年工作总结版)

//2010-08-01 21:05

今天要强迫自己写出这个总结来了,否则我怕以后又有了新的感受,还要沉淀,又不知道多久才能沉淀和写出来.三年前,我写过一个<Web开发的一点心得> http://blog.csdn.net/Eric77/archive/2006/12/13/1441977.aspx ,基本的观点继续延续里面的想法. 只是最近这几年,做了不少系统,从需求分析,设计,开发,测试 和 项目管理了整个流程,又有了一些新的感悟.

对任何系统来说: 无非是做好3件事: IPO. 也就是Input,Process,Output.

对需求分析来说: 你最重要的是搞明白,用户的需求.也就是搞清用户的输入(Input)和输出(Output)是什么,它的要求达到的功能(Process)是什么. 明白以后,你就可以写一些用户需求说明书,描述用例,输入输出处理异常什么的,或者做一个简单的Demo系统,拿去给用户看,看看这个界面是不是用户喜欢的,这个流程是不是用户所需要的等等.

然后就是系统分析: 首先,你需要对用户的需求分模块,每个模块的IPO是什么,他们应采用什么架构,需要和那些模块交互,互相之间的接口是怎样的,需要使用什么技术.每个模块的运行环境是什么样子的,对效率,安全或者容错等特性是否要着重考虑.

接着就是系统设计: 每个模块的数据库要怎么设计,所用技术和架构决定后,要确定不同层次有哪些接口,比如说表现层,业务逻辑层,数据库访问层,相互之间怎么调用,定好框架和开发模式和格式,剩下的就是编码了.

编码部分: 首先团队要有一个良好的编码规范.并且对每个人提交的代码要review,我发现程序编多了,自己就成了一台计算,看到程序就会知道会出现什么结果,根本都不用跑起来.

测试: 单元测试是否编写测试用例? Junit是个好工具.每个人都要保证好自己的代码没有问题. 整体测试就要整个流程的跑一下,看看需求实现的对不对,还有没有什么其他纰漏.

风险管理: 这一点很重要,要时刻知道自己的项目有什么风险,无论是人员的,技术的,时间的,还是协调上面的.都要心里有数,按时按周向领导汇报.

恩,以上就是我现在对一个系统开发的整体观点.

也许写的简单了一点,不过我觉得真的是如此,面试的时候,经常有人问我,你有没有做过一些复杂的业务逻辑,其实说实话,我还真不知道怎么回答这个问题,我一直都觉得,把IPO搞明白,多复杂的业务逻辑都会简化成一个一个小的步骤,处理完输入的数据后,就进行数据库更新或保存,然后就返回给用户处理后的反馈信息. 复杂点的最多就是涉及到多数据库或者嵌套事务的处理,只要把握好事务的生命周期,是否互相影响,处理好提交和回滚也就OK了. 如果是涉及到工作流的,就要记录和管理好它的位置,上下流程的关系状态什么的. 还有什么复杂的业务逻辑形式? 额,我再想一想.

也许大型的数据量的访问和处理就需要一些技巧了. 典型的就是把经常访问的变化不经常的动态页面,转换成静态的html分配给apache处理,注意更新. 或者使用集群Cluster来缓解压力.这又会涉及到怎样追踪用户的问题了,一个最简单的方式就是对用户取模来进行分配,呀,跑题了.如果对数据库的存取量太大,一般可以使用缓存,多弄几台数据库,搞成集群形式,一台主的多台辅的.恩,如果后台表数据量太大的话,就是用分表方式,分表有几种方法,略掉吧.还有什么呢,比如说对查询语句怎么优化,这就要使用查询分析器了,也不多说. 额,,, 还有什么,暂时想不起来了. 不过,douban无私牛人的<豆瓣网技术架构的发展历程>这篇pdf真的很不多,值得每个人研读.

记得我去IBM面试的时候,问过,以后有几条职业发展的方向,回答有三条,一条是IT Specialist,一条是Project Manager,还有一条是IT Architect. 我还曾要求以后能不能向IT Architect发展,那人说,Architect要熟悉很多技术呢,我问了两遍,他这样回答了两遍.后来给我订了Advisory I/T Specialist. 我当时很纳闷,我搞Java这么久,J2ME,J2SE,J2EE全都搞过,而且对Gof的<Design Pattern>也悟了5年,了熟于心,各种各样的经典书籍也看了不少,怎么不能向Architect发展呢. 现在我加入了IBM,进入一个香港的项目,过段时间要去香港培训几星期,才明白了,原来一个大项目会涉及到各种各样的语言,技术,什么Cobal(音译),forturn(音译),java,vb,C#,soa xx总线模式,mq,大型机开发,等,很多我只在书上看到过的古老语言,还有一些听都没听过的语言,框架,模式,全都出现了.我当时这个汗哪,我才发现我真的很无知.知识就是一个气球,你知道的越多,接触的越多就会发现自己越无知.所以这也是我要今天赶紧把这个写出来的原因. 我怕以后又有了变故,还要沉淀,需要时间.

恩,路还长,吾等还需继续努力.

前不久在家里陪我妈看了'曲黎敏'讲的<黄帝内经>的相关养生知识,觉得每个人都应该听一下,大道至简,阴阳五行,天地自然,健康养生. 悟 - 这个字存在宇宙万物中.

//22:23

阅读更多

没有更多推荐了,返回首页