1)测试
这里指的是认真和全面的测试,不是完成代码后运行一下的那种; 很多时运行一次,会看不见以下这些问题:
- Null 或者 out-of-bound的情况,按照开发时的输入,当然okay, 但是情况变了, 就会出现异常;
- 界面布局因为参数不同而变化
- 没有捕足的Exception (异常)
如果不反复测试,就看不见上面的问题;
(真人真事: 当去体验同事说已经”做好“的功能,有时会崩溃,有时候连程序也执行不了, ...)
2)设计
对于很多程序员来说, "设计"一件可有可无的事情; 因为没有设计,反正程序也可以写出来,所以“设计”就开始变得“无谓”; 但是“设计”比我们想象中重要,因为它可以帮助我们理清程序的思路,而且可以让工作拆细,方便计划和安排工作;
(真人真事: 最近半年我开始有先设计,后开发的习惯,发现当设计好了才做,比较快把事情完成,否则的话,容易中途迷失方向及动力)
3)重构,注释及文档
代码第一手写出来,通常是比较粗糙,没有妥善铺排,或者只有自己能看到懂的;但是代码如果放下不管,日后需要修改或DEBUG, 就会花很多气力来理解; 当然“重构, 注释及文档”又是不做,不会又及时的影响和需求,但是日子久了, 就会令代码维护不了,甚至需要丢弃;
(真人真事: 最近打算改进一个地图编辑器,由于上个版本的代码太难看,跟进那个工作的同事,不到几个星期就投降,说代码完全不明白;最后,我只能重写 =.=)
4)改进效率
程序员很多时候是帮助其他人改善效率;但是很多时候,自己却不会改善自己的工作效率;
举一个例子: 你写一个生产一个XML的程序,那个XML数据可以提供给服务器使用;
如果需要测试事,需要在数据生成后,登录FTP, 然后用把档案传输到指定目录, 然后打开WEB来验证;
(这类手动操作,大概每次需要话5-10分钟)
这个例子可以这样进行改进: 利用一个简单linux脚本来: 它会把生成后的数据FTP到服务器,和打开相关WEB连接进行检查;
这个脚本虽然要花大概1小时来写,但是可以省掉不少手动FTP和开WEB的时间;而且写好了脚本将来可以用在其他的地方;
5)沟通
有些程序员会觉得“沟通”不是他们的工作,应该是PM 或者客户主动说明,由于已经有很多代码需要开发,所以不应该花时间去沟通;但是有良好的沟通,往往可以省了不少时间;另外,但你与你的客户,程序伙伴,小组等,建立好的沟通,就可以在开发前对需求和设计更了解,不要花时间改来改去;而且大家沟通后,也会令工作气氛有所提升;
# 总结 #
如果和一些优秀程序员合作,就算他们不想做上面的工作的,也会花时间来处理,让程序的测试, DEBUG, 培训和持续开发变得更有效率;