关灯
护眼
字体:

程序员的正常生活(28)

作者: 小心玻璃 阅读记录

“那时候还不是,不过也差不多了,她忙主要是为了养活我而已。”

“我一直都没敢问,”林宇面对已经成熟的师弟,终于问出他一直想问的话题,“你爸爸呢?已经不在了吗,好像一直都听你说妈妈的事情。”

“大概还在吧,我不知道,我妈从来不提,我小时候也不懂问,现在更不想问了。”对于一个还活在世上,却对他们不闻不问的爸爸,着实不用花费什么心思去考虑。

“那你们真不容易,你这么努力,你的妈妈一定也很棒。”林宇由衷地感慨。

“嗯,她是最伟大的母亲。”韩邵晨肯定。

互相分享秘密的两个人忽然觉得他们的“友谊”又深了一层。

之后几天两人再没时间碰面,林宇突然需要出差洽谈业务,韩邵晨则是在原出差人员出院后简单交接了一下,周四便和谭明明一起飞回了A市。

等待他们的,是项目经理丁赤要彻查这次“重大bug”是谁导致的,谭明明还没喘口气就被要求去调出代码库里的历史记录,查看究竟是在哪一天谁上传的代码里注释掉了线程退出程序。

项目开发中,在工程代码框架搭成之日起就要把源代码上传到项目对应的代码库中,每个开发人员每个模块的修改和更新都要把自己的新代码整合到项目代码里,并且自测没问题后再更新到代码库里。每个人在整合代码时都要保证自己会从代码库里下载当前最新代码进行整合。

在开发代码的高峰时期,有时候同一时间两个人甚至更多人需要整合代码,上传入库,为了避免冲突,代码库会有锁机制,有一个人获得锁之后,别人就不能上传自己的代码,只能等这个人整合测试完毕释放锁才能进行操作。

理论上说,这种方法可以追溯到每个人的每次更新,可以很快的查出来究竟是谁导致的这项问题,只是更新的源码版本非常多,即使只改一个字母上传后也会生成一个新版本号,一个项目做下来可能会有成千上万的版本号。谭明明简单粗暴地使用二分法,先从中间版本开始查起,发现已经有问题了,又去查前半部分的中间版本,还是有问题。等谭明明一版一版地下载查阅,却惊讶地发现原来每一版代码里的线程退出都注释掉了,等她查到最初的linux最小系统版本,才发现原来这个版本的代码就有问题!

简直令她崩溃,早知道她就从前往后查了。

他们测试机顶盒都是保证功能可以正常运行就算测试通过,即使是压力测试也仅仅测了三天,所以一直都没发现这个问题。后期的代码检查也大都只关注自己的模块代码,谁会没事干去看线程处理啊。

谭明明忍不住又找师傅吐槽。

谭明明(出差归来真开心):师傅T_T,你猜是谁把线程退出注释掉了?

韩邵晨(座位H403-7-1):?

谭明明(出差归来真开心):T_T内核最小系统就有问题啊!我好郁闷,当初是谁调试的内核啊。

韩邵晨(座位H403-7-1):看上传记录。

谭明明(出差归来真开心):哦,我给气忘了。我看看是谁啊。

韩邵晨(座位H403-7-1):可以写邮件了。

谭明明(出差归来真开心):是赵亮!

韩邵晨(座位H403-7-1):硬件工程师?

谭明明(出差归来真开心):哈哈哈,师傅别逗了,赵亮8怎么会调内核代码,是赵亮13!

韩邵晨(座位H403-7-1):发邮件吧,先抄送项目经理软件组长。

所谓linux内核最小系统,是使用官方发布的linux内核源码,针对每个项目而做出的内容最少的可调式源码版本。一般只需要保证让cpu运行,时钟计数,以及串口能在电脑上打印出调试日志即可。之后就由各个模块的开发人员逐步把自己的模块代码添加到最小系统中去,直到最后包含所有模块代码和功能。

大公司里面,同名的人员非常多,在通讯录人名列表里为了区分,会在名字后面加上数字后缀,赵亮这种特别常见的名字,在M通讯的历史上出现过太多次,所以编号一直排到了20多号。仅仅机顶盒项目里就有两个赵亮,一个是软件工程师编号13,一个是硬件工程师编号8,项目组成员为了提起他们为了区分,有时会直接以赵亮13或者赵亮8称呼。

韩邵晨和硬件工程师打交道比较多,赵亮8又是老员工,他才有印象,而对机顶盒项目里比较新的软件工程师他不太熟悉,一下子没反应过来。不过对于被徒弟笑话这种事他压根不放在心上,只是提醒谭明明查出来了就要发邮件告知必要的人员,先不要宣扬,至于后期通报处理的事情,就不需要他们操心了。