很庆幸身在华中科技大学,也很庆幸能在大二就加入Dian团队,使我能够快速地进步和成长,并作为一个本科生就能够以核心身份参与到真实的软件项目中,如今在两年过去了,经历了两个中型的软件项目,回头想想,收获还是蛮大的,在此做一点小小的总结吧!

 

(1)编码过程中遇到的问题要及时总结


编程其实也是需要经验的,经验的获得从来都是伴随着问题、错误和失败,或许今天你费劲脑筋解决了问题,如果不及时记录和总结,不久的将来遇到同样的问题你可能同样会束手无策。


(2)编码前的认真思考与设计


曾经看到我的一个队友在博客上发表的感慨:“对于一个失败的设计,我失去了coding的欲望!”,或许只有真正经历过这种痛苦的人才能真正体会到这样一种心酸吧。

        

其实编程也是一门艺术,良好的设计能使自己的代码具有更好的扩展性和移植性,软件项目,需求变动往往很大,为了在面对需求变更时不必痛苦地将自己辛辛苦苦编写的代码修改得面目全非,还是多在设计上花费一些心思吧,有时真的是磨刀不误砍柴工。

          
(3)编程规范和代码的review


无论项目大小,一定要有编程规范来进行约束,以保证代码风格的良好和统一,这样项目组组员之间可以更快更容易地读懂对方的代码,正确地理解对方提供的接口的含义,同时可以在组内产生更多对整个全局都足够了解的组员。同时,良好的编程规范对于一个程序员而言,也是一种不可多得的好习惯啊!

         

从更深远的意义来讲,良好的代码对于以后其他人对项目代码的学习、维护以及给甲方产生的好感这方面的作用更是不可估量。
          

对于程序员而言,自己看自己的代码是很难发现问题的,特别是在设计上,每一个人总会觉得自己的设计是完美的,而代码的review是一件非常好的事情,一方面,通过review别人的代码,可以学习到很多在对方代码中自己所不懂或者没有涉及过的知识;另一方面,review代码经常可以检测出代码中的微小漏洞以及不良的编程风格,问题发现得越早,对于整个项目越有利。


(4)组员要多为组长思考


其实,在任何一个项目组里,做组长的都很不容易。不仅要面对项目、甲方以及自己上级的压力,还要管理好手下一群性格各异的人,这真的不是容易的事,希望做组员的都能够设身处地地为组长思考,当然,组长也应该常常站在组员的位置为他们考虑考虑,尽量设法提高组员对整个项目组的归属感和认同感,这样整个项目组才更有凝聚力,才能打出一个又一个的胜仗。

         

我们项目甲方的经理观察我们做项目的整个过程后无比感慨,说学生做项目有一个很大的优点,每一个人都很踏实认真,不像公司的员工,很多人都喜欢偷懒或者抬杠。其实,偷懒或者抬杠又有什么好呢?反倒是你多为上司想想往往能为自己带来更多的机遇,踏实点,不要怕吃苦,怕吃亏。


(5)1 + 1 > 2


讨论设计方案,多个人讨论的结果永远比一个人想出的方案要好,更加优越也更加全面,所以,在项目代码进行设计时,真的不妨多与其他人交流,多听听其他人的意见和建议,集思广益,往往能获得更加优秀的方案。


另外,要学会查找和利用信息,许多事情你不是第一个做的人,也不是最后一个做的人,多在网上找找资料,收集别人成功或者失败的经验,这样一定会对自己的设计产生更多积极的意义。


6)舍不得孩子套不着狼


首先引用学校电工基地尹老师的那句话:“在课堂上听课是学习,参与创新活动或者跟着老师做项目难道就不是学习吗?”他说得很有道理,大家其实不要怕投入太多的时间在项目中会影响到自己的课业,没有真心的投入是不会有收获的,“舍不得孩子套不着狼”,真的,只有舍得投入时间和精力你才能真正更大的收获。


(7)项目组中有跟组长一样对整个工程都了解的人


这一点很重要,特别是在后期对bug的修改过程中,如果只有组长对整个工程都了解,一旦出现综合性的bug,解决问题就只有靠组长了,这样是很危险的,不仅增加了组长的负担,而且使得组长成为了项目的瓶颈。

     
(8)提高效率,采用组内邮箱

 

项目组应该为每一个组员分配的组内邮箱,可以使用foxmail登陆,主要用于如下场合:
 

重要信息的通知(由于大家常常有课,许多信息不可能都口头通知,邮件提供了这样一种方便快捷的功能)
         

任务的布置:邮件形式布置的任务的好处在于,它将任务详细的记录了下来,特别是一些比较复杂的任务,口头的描述往往容易忘记。
          

文件的传输与保存,使用邮件传输一些文件有一个重要的好处,邮箱帮助我们存放好的那些重要的文件,我们不会因为下载后随手不知道放到哪里了又需要对方重新传递。
         

邮件群发功能,这是qq和飞鸽做不到的地方,这一点极大方便了个人与全组人员的交流
         

总之,组内邮箱的极大的提高项目成员之间的交流效率。


(9)组长对项目进度的把关

         

在整个项目过程中,我一直感觉非常的紧,也源于组长的一种忧患意识,也正是这种忧患意识,使我们的项目能够成功在结题之前顺利完成。

所以说,组长需要有一种强烈的忧患意识,特别是对项目进度的把握上,宁肯平时紧一点,多预留一些应对不测事件的时间,也不要到项目要结题时日夜赶工。项目的进度一定要及早制定好一个紧凑的时间表,项目分哪几个阶段,每一个阶段应该干什么事情。
 

(10)系统性能测试非常重要

          

这次我们软件进行了三天的通宵性能(压力)测试,在性能测试的过程中发现了很多很多平时测试中没有遇到过的问题。

所以说,系统的性能测试非常重要,一定不能忽视。通过性能的测试,我们至少可以达到以下效果:

获取一些系统性能上的一些参数提供给甲方
暴露出一些非常隐蔽的Bug

促使我们优化代码,提高系统的性能……


以上就是我对最近做的两个项目的总结,在此与大家分享,希望对大家有所启发,有所帮助。另外,即将开学了,对于刚刚入学的大学新生,我想说一句:“从小学开始,我们花费了十二光阴去应付各种考试,如今进入了大学,到了学习真正有用的本领的时候了,希望你们抓紧大学的每一天,找到自己的兴趣,锻炼自己的能力,提高自己的价值!”