程序员的正常生活(17)
“林宇。”韩邵晨打断了他的慌不择言,“我是不是没说过我也很高兴?”
“啊——”林宇有点愣,“好像没有。”
“你毕业后失联,我很难过,你是我那时唯一的朋友。这次出差又见到你,我很高兴。”韩邵晨努力组织语言,他实在太少表达自己的情感,说得很生疏,“你喜欢男人女人,我一点都不在乎,你是我的朋友。”
林宇怔怔地举着手机,他自从出国后发现自己的性向,在陌生的国度里挣扎求学,好不容易找到个男朋友却因为对方的关系只能遮遮掩掩,少有时候能体会到爱情的甜蜜。分手回国后,有发现周围的人也大多流露出对同性恋的厌恶排斥,即使事业上他表现得意气风发,但是情感上他只能在暗夜悄悄喝一杯,却始终不敢再多迈出一步,更因为自小洁身自好的习惯,让他不屑随意找人约炮,只是孤独感始终笼罩着他。
而这个少年时候被自己忘在脑后的朋友,今天却以他一贯的认真态度,说出了林宇最想听的话。
第 10 章
林宇觉得自己内心深处压抑多年的桎梏似乎破开了一丝裂缝,汹涌的情绪让他不由得深呼吸了一下,随即又被伴随而来的愧疚击中,这是韩邵晨首次在他面前表达对他们之前失联的在意,他一想到这一点,甚至都忘记了自己首次在朋友面前出柜的尴尬,“晨儿,真的对不起,我不是故意不联系你的,就是忙忘了。”
“我不是想指责你什么,我只是想告诉你不用介意你的性向对我们友谊的影响。你不用再道歉,你已经道歉过很多次了。”
林宇听着听着有些惊讶,“晨儿,你怎么突然这么会说话了?是突然有什么高人指点?”
“不是突然,是一直都有高人指点。”韩邵晨居然肯定了。
林宇紧张起来,“那我的事情——”
“我妈一直都知道,有机会带你去见见她,她也很想认识你。”韩邵晨一点也不卖关子。
“你是说一直都知道什么?”林宇对这个总是工作繁忙,让儿子做饭干家务的妈妈也很好奇。
“知道你是我高中时期的朋友,失联十年,以及最近重逢,还有你可能的性向。”韩邵晨按顺序说。
林宇被噎了一下,“你这都跟你妈说了?”
“对不起,事先没有争取你的同意,”韩邵晨似乎意识到这样有些不对,“只是我有些事情不知道该怎么处理,咨询我妈意见的时候顺口说了,但是你放心,她不会乱说的。”
“咨询?”林宇对韩邵晨的用词感到惊讶。
“我妈本身就是一个心理咨询师,我有时候有些问题会请教她。”韩邵晨没有说他请教的具体是什么问题。
林宇稍稍松了口气,心理咨询师的职业道德也不会让他们乱讲话,“我以前听你说你妈总是很忙,还以为她是做什么工作的呢,原来是心理咨询师啊,我没接触过这个行业的人,公司里虽然有心理咨询服务,我也没去过。”
“那时候还不是,不过也差不多了,她忙主要是为了养活我而已。”
“我一直都没敢问,”林宇面对已经成熟的师弟,终于问出他一直想问的话题,“你爸爸呢?已经不在了吗,好像一直都听你说妈妈的事情。”
“大概还在吧,我不知道,我妈从来不提,我小时候也不懂问,现在更不想问了。”对于一个还活在世上,却对他们不闻不问的爸爸,着实不用花费什么心思去考虑。
“那你们真不容易,你这么努力,你的妈妈一定也很棒。”林宇由衷地感慨。
“嗯,她是最伟大的母亲。”韩邵晨肯定。
互相分享秘密的两个人忽然觉得他们的“友谊”又深了一层。
之后几天两人再没时间碰面,林宇突然需要出差洽谈业务,韩邵晨则是在原出差人员出院后简单交接了一下,周四便和谭明明一起飞回了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又是老员工,他才有印象,而对机顶盒项目里比较新的软件工程师他不太熟悉,一下子没反应过来。不过对于被徒弟笑话这种事他压根不放在心上,只是提醒谭明明查出来了就要发邮件告知必要的人员,先不要宣扬,至于后期通报处理的事情,就不需要他们操心了。
谭明明把源码库版本号和上传人员记录截图,同时把问题代码截图,简单说明了一下发出邮件,随即就把这件事抛到脑后继续忙别的事了。
最后的结果出来,赵亮自己都不知道怎么会注释掉线程退出的函数调用,这件事变成一个悬案。部门级通报批评,赵亮被扣除两百元奖金,软件组长和项目经理被扣除五百元奖金,让大家注意代码质量。算是轻轻放过了,毕竟大家都知道,一个从一开始就被催催催的项目,开发人员情绪紧张出问题确实很正常,又不能去处罚谈项目的大领导。而软件组长和项目经理被连坐也是惯例,也不好太过打击底层人员的积极性,这个结果还算能接受。