有一个任务,我们开始的时候一致认为只需要一天半就可以完成,为已经完成的代码设计测试用例并且实现。

  但是我却做了……五天!

  最开始两天,是因为实现测试用例的方式和以前的发生了很大变化,用了两天时间适应,有点长。原因在于还真不适应这里的沟通方式:他们是打电话的,有什么问题,直接一个电话过去。我却在发邮件,想想也知道,时间差在哪里吧?以后多打电话,电话费可比时间便宜多了;招人烦可比做不完任务好多了。

  然后三天,嗯,就可以拍桌子骂人了。因为有一个关键函数的函数说明,至少我找到的所有资料里,都是不全面的。这个函数应用之广,几乎无处不在,但是在函数的说明里,却寥寥几句就打发了。当我调用函数出现莫名其妙的错误返回值的时候,就开始仔细研究那几句话中间的字里春秋了——那几句话,又是英文,哪里有汉字的微言大义呢?我都背下来了,也没找出个子丑寅卯。

  于是汲取前两天的教训,又是发邮件又是打电话,招人烦招了不少,几乎全公司都知道有个大菜鸟遇到了一个奇怪的问题,却没任何进展。还好几乎没人认识我啊,哈哈。不过这样来上几次,也就出名了。

  第一天过去了,第二天就开始急了。一方面还是电话邮件不断,建议不少(大家都挺热心),但是一个也没用;另一方面,我也一直在其他代码里找类似的程序——终于找到两部分。搬过来,嘿,效果不错哦!碎步小跑的一点点改,就改成正合我用的代码,编译运行,一切正常!欣欣然去吃中午饭了。

  吃饭回来,更新一下代码,稍作一点点修改,顿时汗如雨下啊——怎么就又不行了呢?!而且,这次出现的,还是最开始的怪现象。您知道什么是欲哭无泪吗?欲哭无泪的原因是汗如雨下,都出成汗了,哪里还有泪呢?

  下午,又是一通电话邮件,这次目标就明确多了,只给专家发发邮件打打电话,省得大范围的丢人。一方面等着专家意见,一方面我用排列组合的方式修改自己的代码,企图回到修改以前的样子。甚至还加班一小时,排列组合的都试了两遍,依旧如故啊。

  回去算了。

  今天,也就是第三天,我来了以后,打算换种方式,直接跟到代码里面好了,看看到底为什么会传出这样奇怪的错误。一个小时,步步追踪,有点深夜追寻国宝大盗的感觉,终于捉住了:原来一个变量没初始化惹得祸。把变量初始化一下,就好了,一切正常。

  但是,为什么会发生这样的问题?变量没初始化是很弱智的错误,我没有初始化的原因是我确凿无疑的听到过,在另外一个变量为0的时候,这个变量不需要初始化。而且,在实际的运行中,这样的代码是没有任何问题的,只有在测试平台上运行才会出问题。可是查看代码证明,这个变量确实是在任何情况下都需要初始化。

  我猜可能是因为实际运行平台自己把变量初始化了,测试平台,毕竟和实际的环境是有区别的。这点区别不打紧,就硬生生把我憋屈了三天。

  第一罪人,当然是函数和测试平台的说明书不完善。但是如果我一开始就没有指望别人,而是自己找相似的代码、跟踪程序查找原因,也不至于用五天这么说出去丢人的长时间。不过不管怎样,总算解决了,嚯嚯!

  果然是天助自助,嗯,以后,要多吃自助餐,培养自助精神。

[原文在百度空间已经关闭]