天助自助
有一个任务,我们开始的时候一致认为只需要一天半就可以完成,为已经完成的代码设计测试用例并且实现。
但是我却做了……五天!
最开始两天,是因为实现测试用例的方式和以前的发生了很大变化,用了两天时间适应,有点长。原因在于还真不适应这里的沟通方式:他们是打电话的,有什么问题,直接一个电话过去。我却在发邮件,想想也知道,时间差在哪里吧?以后多打电话,电话费可比时间便宜多了;招人烦可比做不完任务好多了。
然后三天,嗯,就可以拍桌子骂人了。因为有一个关键函数的函数说明,至少我找到的所有资料里,都是不全面的。这个函数应用之广,几乎无处不在,但是在函数的说明里,却寥寥几句就打发了。当我调用函数出现莫名其妙的错误返回值的时候,就开始仔细研究那几句话中间的字里春秋了——那几句话,又是英文,哪里有汉字的微言大义呢?我都背下来了,也没找出个子丑寅卯。
于是汲取前两天的教训,又是发邮件又是打电话,招人烦招了不少,几乎全公司都知道有个大菜鸟遇到了一个奇怪的问题,却没任何进展。还好几乎没人认识我啊,哈哈。不过这样来上几次,也就出名了。
第一天过去了,第二天就开始急了。一方面还是电话邮件不断,建议不少(大家都挺热心),但是一个也没用;另一方面,我也一直在其他代码里找类似的程序——终于找到两部分。搬过来,嘿,效果不错哦!碎步小跑的一点点改,就改成正合我用的代码,编译运行,一切正常!欣欣然去吃中午饭了。
吃饭回来,更新一下代码,稍作一点点修改,顿时汗如雨下啊——怎么就又不行了呢?!而且,这次出现的,还是最开始的怪现象。您知道什么是欲哭无泪吗?欲哭无泪的原因是汗如雨下,都出成汗了,哪里还有泪呢?
下午,又是一通电话邮件,这次目标就明确多了,只给专家发发邮件打打电话,省得大范围的丢人。一方面等着专家意见,一方面我用排列组合的方式修改自己的代码,企图回到修改以前的样子。甚至还加班一小时,排列组合的都试了两遍,依旧如故啊。
回去算了。
今天,也就是第三天,我来了以后,打算换种方式,直接跟到代码里面好了,看看到底为什么会传出这样奇怪的错误。一个小时,步步追踪,有点深夜追寻国宝大盗的感觉,终于捉住了:原来一个变量没初始化惹得祸。把变量初始化一下,就好了,一切正常。
但是,为什么会发生这样的问题?变量没初始化是很弱智的错误,我没有初始化的原因是我确凿无疑的听到过,在另外一个变量为0的时候,这个变量不需要初始化。而且,在实际的运行中,这样的代码是没有任何问题的,只有在测试平台上运行才会出问题。可是查看代码证明,这个变量确实是在任何情况下都需要初始化。
我猜可能是因为实际运行平台自己把变量初始化了,测试平台,毕竟和实际的环境是有区别的。这点区别不打紧,就硬生生把我憋屈了三天。
第一罪人,当然是函数和测试平台的说明书不完善。但是如果我一开始就没有指望别人,而是自己找相似的代码、跟踪程序查找原因,也不至于用五天这么说出去丢人的长时间。不过不管怎样,总算解决了,嚯嚯!
果然是天助自助,嗯,以后,要多吃自助餐,培养自助精神。
[原文在百度空间已经关闭]
标签集合/Tag clouds
C++
Symbain
轻松汇编
算法
论文学习
资治通鉴
Delphi
编程之美
Poco
MFC
Linux
IFC
知乎
汇编
数据分析
交叉编译
poco
j2me
android
XML
Java
DTD
飞信
零宽断言
诺基亚
联系人
编程
真值表
池西木
正则表达式
多线程
命令行
优化
stream
configure
cmake
VIM
UiAutomator
TDD
Symbian
Sqlite
SourceInsight
Python
MPAndroidChart
Kotlin
Flutter
Dokka
Chatgpt