Waiting List

最近突然意识到自己老是在等,真正做事情的时间很少。

主要问题还是出在测试上,无论修改多少代码,都要跑一堆的测试,要第二天才能得到测试结果。因为反馈的速度很慢,浪费了很多时间。这里面的原因有很多,一是人多机器少,测试资源紧缺,“排队”测试是很正常的现象;二是只有黑盒测试,没有白盒测试,所以不知道究竟哪些代码被测试到了哪些没有,只能靠量来轰炸。

测试的易用性在过去一年有了很大改善,提交测试不再是一件令人头疼的事情,所以大家也就更频繁地做测试,然而这种测试具有很大的盲目性,因此,我们浪费了很多时间在这上面。所以,开展白盒测试是今年工作的当务之急。

做了这么多年还没有白盒测试有点令人费解,我想主要还是认识不够,对问题的严重性缺乏了解。其实,公司里还是很重视测试的,但是,有没有测试、有多少测试用例很容易分辨,要实现高效的测试则很难。

Accomplishment

每个人都想有所成就,可到底什么才叫成就呢?

有一段时间,我对C++特别狂热,感觉自己几乎读遍了市面上叫得响的C++书籍,尤其是读了《设计模式》之后,更觉得自己了不得了,当时特别有成就感。毕业设计狂用了一把STL,工作后由于项目限制,不能用STL,就在design pattern上下功夫,只要能搭上一点边就绝不浪费机会。当然,这里面有练手的成分,但无论如何,代码写好之后感觉特别好,不是因为解决了什么实际问题,而是因为用了当时最火的技术。

然而,这种成就感是虚假的,就像傍上大款的小明星以为自己就此跻身上流社会一样可笑。真正的成就感应该是来自于对他人直接的、或者间接的帮助,帮助人们提高工作效率,帮助人们更好地享受生活。这时候,solution is more important than implementation.能抓到老鼠的就是好猫,而其颜色如何,血统高贵与否倒是次要的了。这些是我在写了一个又一个Perl脚本之后获得的启发。有人说用Perl写出的程序很难维护,只适合写小程序,解决小问题。且不说这种观点正确与否,实际上,很多时候我们都是在做那些看起来琐碎的小事,真正重要的事情反而没有时间去做。Perl语言非常简洁,可以很快构建出一个小程序,尽管这个程序可能不好理解,但是却从此把人从烦琐的、机械的工作中解放出来,去从事更重要、更有意义、也更有趣的事情上去。而且,这样的小程序也未必需要怎样的维护,因为它所解决的问题是如此之小,小到根本无法容纳滋生复杂的基因。

原来,我经常为自己实践了书上的方法而兴奋不已,也会鄙视那些破坏我辛辛苦苦搭好的架势的人,就像有洁癖的人无法容忍一丝灰尘;现在,这种感觉淡了,反而愿意去写一些Perl脚本,自动化那些过去需要手工操作的工作,并“厚颜无耻”地向别人推销。我并不是喜新厌旧,认为Perl就比C++好,也无意引起争论,只是想说,只有踏踏实实做一些对他人有益的事,才是获得成就的唯一途径,而使用什么工具,不是特别重要。

等到事业有成,再来风花雪月也不迟:-),比如工作累了做两道数学题休息一下,或者背诵一遍C++里名字查找的顺序(这是我从来没记住,也没想记住的一部分)……