Java Web开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

经验05 征战沙场——项目实战经验谈

一个人只有经过东倒西歪的,让自己像个笨蛋那样的阶段才能学会滑冰。

——萧伯纳

记得笔者在做第一个项目的时候几乎是天天加班,因为那个时候自己的实践能力还是稍微弱一些,而且几乎每天都会碰到问题,自己总是在发现问题与解决问题之间重复着,感觉自己是被项目牵着鼻子走,完全是被动的,这样让自己感觉做项目很累,自信心也受到了一定的打击。在进行第二个项目开发的时候,自己总结了一些经验,在实施的过程中由被动变为了主动,自然就感觉轻松了一些。

1.在项目开始前进行技术储备

在项目进入正式开发前,自己首先要了解一下这个项目可能会用到什么技术,例如Extjs、报表信息处理等。自己列个清单,看看哪些技术是自己欠缺的,对于陌生的技术先提前进入学习,免的临时抱佛脚。

2.分析项目的业务流程

分析项目数据库的ER图,了解各个表之间的关联关系,在大脑中先初步形成一个数据库存储的关系,但是这个步骤一般会有项目经理分析完毕,自己只需要理解项目经理的设计意图。分析项目的业务流程,明白了业务流程才能知道项目如何去做,才能做到心中有数,把握数据的流程走向,防止在开发过程中走偏方向。

说明

了解业务流程在项目开发中是非常重要的,项目经理最希望的就是手下的人都是这个项目的业务专家,这样开发起来就会相对轻松一些,在项目前期,自己的侧重点也应该是理解自己负责模块的业务流程。

3.多和团队中的战友交流

团队合作的关键所在其实是交流,项目开发中强调的也是团队成员之间的交流,没有交流,再统一的管理,也仅仅是合成,而不是合作。不同的思维只有在相互碰触的时候才能产生火花,一个自认为很难攻克的技术问题,通常会在团队成员之间的讨论中找到答案,或者一个新的想法,会在大家的争论中逐渐成型乃至成长壮大。在大家互通有无的时候,你的思维是最活跃、效率是最高的。记住,现在的项目开发并不是一个人的战斗。

4.能在数据库干的事绝不放在程序中解决

大多数的项目都是基于数据库开发的,所以在项目开发中自己的数据库技能也显得非常重要。有一些SQL语句就可以解决的问题不要放在程序中解决,例如数据分析、排序、自动编号等,如果这些都放在程序中解决无疑会增加代码的复杂度,有时可能会造成程序效率的低下。

说明

笔者在开发一个换位排序的功能时,完全利用程序来控制其功能,后来项目经理看了代码后,提出了一个建议,让我利用SQL语句配合程序实现,开发完毕后比原来的代码精简了许多,并且效率也提高了。

5.一定要为代码加上注释

为代码加注释是一件既方便自己又方便别人的事情。代码的注释是团队成员之间最好的离线交流的方式,可以帮助其他人了解你程序中的想法和意图。不要嫌弃它浪费时间,你不希望在你聚精会神的时候有人来打扰你吧,你也不希望程序维护人员破口大骂你的程序吧。就算是自己写的代码,时间久了回头去看的时候,没有注释也未必一下子就能够明白程序的意图。写注释是一种习惯,不管你愿不愿意,你都得强制自己执行。

说明

笔者在最开始参与项目开发的时候也不愿意为程序加上注释,后来在项目经理的一再强调下才改正过来,后来重构一个九几年的网站项目时,其中代码注释是少之又少,维护起来也很困难,并多次开口大骂这个程序,至此我才认识到代码注释的重要性。

6.边写代码边测试

可能有的程序员在项目开发中有这种习惯,我的程序能运行就行了,认为程序测试就应该是测试人员的事,这种认识是非常错误的。程序员首先应该保证的就是自己程序代码的质量,程序不是光能运行就行了,还应该利用正式的数据测试一下看看有什么问题,测试一下数据的临界值,看看程序对数据控制的如何。每写完一个功能点就测试一下,看看是否和自己预想的一样。边写边测不是在浪费时间,而是在节省时间,修改低质量代码的时间要远远大于对程序测试的时间。

7.正确使用版本控制工具

如果说你的项目组没有代码版本控制工具,那么你的软件开发还停留在石器时代。由于目前的项目开发并不是一个人的事情,所以项目中会使用版本控制软件来控制项目的总体代码,例如CVS、Subversion、Git等。程序员要会正确使用版本控制工具,正确地上传、下载代码,以免造成项目代码管理的混乱。最好每天都能够提交一次自己的代码。

说明

在笔者原来的项目组中,有一条明文规定,就是每个人在每天下班前都要提交自己的代码,这样可以保证更有效率地保证代码的一致性。

程序员喜欢把项目开发比作是一场战斗,虽然这场战斗中没有硝烟与流血,但是它却比真正的战争更加残酷,项目的成败直接关乎着这场战斗的胜败,它凝聚了无数程序员的心血,祝愿每个程序员都能在这场战斗中取得胜利。