程序员很受伤的三个器官是眼睛、手腕和腰,自动化是保养这些部位的良药之一。尽量把工作自动化,就无需整日一目十行地在屏幕上搜索,也无需频繁地敲打键盘和点击鼠标,从而腾出时间站起来活动筋骨或去运动。
“不积跬步,无以至千里”,在软件开发过程中全面实施自动化也不是朝夕之间就能完成的事。但是,如果不去做的话,就永远也实现不了。其实,“自动化”也不是什么神乎其神的事,说白了,就是能让程序做的事就不要手工做。比如,我们项目的check in
流程分两步,首先提交代码,然后发一封check in email,列出修改(包括添加和删除)的文件,再简单描述一下这段代码的功能或目的。我很听话地按照这种模式工作了近三年,直到最近才发觉有点傻。第一,email的标题和提交时使用的message基本是一样的,email的格式和部分内容也是固定的;第二,列出相关文件的操作也很烦琐。于是,我写了一个Perl
脚本,利用Cvs
和Email::Send
两个Perl
模块简化了这一过程。对于经常做merge的人来说,这个脚本节省的时间更加客观。当然,更好的解决方案是把这个功能做在服务器端,可惜想在Intel,服务器往往都在开发人员的控制之外。
自动化的效果不仅体现在工作效率上,对程序员的精神鼓励也很重要。程序员在实现自动化的过程中提高了自信,获得了成就感,工作的动力也会随之提升;而自动化节省的时间,使得程序员可以把精力用于更有趣也更重要的工作中去,从而更充分地实现人生价值。
看了半天才明白,堂堂intel居然连Commit mail都没有,还需要Casper自己动手写,辛苦你了,只能说你们CVS Server维护的人太。。。。 让人大掉眼镜
BTW:commit mail的perl实现很简单,网上到处都是,呵呵,你应该跟你们管理员反映一下。
我就知道这事说出来让人笑话,可偏偏实事如此,也不是我们没争取过,可人家说项目这么多,做不来。
咱是想破头也想不通这事有多难。一句话——“官僚”。