穆林森又偷偷回转身去看了一眼乔云,见他左手扶着额头,右手一会儿用鼠标点点程序,一会儿又切换成回车进行控件间的光标移动,等界面上完成一整套输入动作后,他便切换至数据库刷一遍刚输入的数据,对比过后调出一个excel表单,在某项测试case后打了个勾。
穆林森发现那个测试case表单是乔云做的鼠标点击与回车搭配输入排列组合表,刚才乔云打勾的case已经是这个表单的第35个case,但是表单旁边的滚动条还处在四分之一处,穆林森知道乔云也是看了log之后发现flag赋值的问题,比起自己一心依仗天眷顾的瞎点,他采用了排查的方式来寻找出错的契机。
穆林森心中五体投地与感恩戴德之情搅合在一起,似乎加快了胃动力,他的肚子打破了开发室的安静,幽幽的叫了一声。穆林森没想到乔云会仿佛回过神来般突然回过头来,对上乔云的眼时,他好像偷窥被抓现行那般尴尬无比。
“呃,饿了么?”穆林森下意识地避开了乔云的目光,假装寻找钱包。
“嗯……还好。”
“我去公司楼下的全家买点吃的上来。”穆林森逃避般的拽着钱包急急起身,抬眼间又看到了乔云电脑屏幕里那张长长的case表,“你把case邮我一份,我从最后那个往前查,我们一起查能快点。”说完便转身向门口走去。
“嗯,好!”已经快拐出门口的穆林森没有看到乔云的嘴角浅笑。
人间四月天的深更半夜还是有些微凉,穆林森刚才一时逃的急,忘记给自己裹上外套,刚踏出公司所在的办公大楼,冷风搜搜地无孔不入,他忍不住一连打了好几个喷嚏。
脑子被接连的喷嚏弄得有些缺氧的穆林森,一边靠着本能抱着胸哆嗦着走向全家,一边想着乔云今天一天给自己带来的踏实与感动,就这么一个对项目理解度极高,做事又一丝不苟的人怎么就会走上“卖肉”的道路呢?想到这里,穆林森脑中又若隐若现《职场初恋》的片段,神情恍惚中穆林森走进了全家,无视店员的“欢迎光临”径直走向便当和饭团柜台,伸手一扫而空,在结账等待便当与饭团加热时,又噌噌噌从热饮柜里把咖啡与咖啡型饮料一扫而空,当他抱着一堆粮食又回到冷风中的时候,才从炽热的回想中回过神来。真是见鬼了,穆林森晃了晃脑袋,迅速从冷风中窜回了办公大楼窜上了公司。
用身体顶开开发室大门的穆林森,被眼前一幕惊地目瞪口呆,差点把手中抱着的食物直接喂给了地面。
第29章:情不自禁
顶开开发室大门的穆林森看到乔云正弯着纤腰撅着屁股背对着他,一手撑着办公桌面,另一只手向前不知在摆弄些什么,他那个角度看不出个究竟,但是这活生生的《职场初恋》单人场景,让穆林森的饥饿症状一下从胃窜上了脑门。
刚刚甩在冷风中的一丝丝臆念又随着开发室内的暖意回归,牵引着穆林森抱着食物呆愣呆愣地走向乔云身后,站定,把加热过又抱在怀中保暖了一路的热烘烘的食物放在了乔云撅起的屁股上。
“啊!”乔云被这突如其来的“偷袭”惊吓到,仅仅靠单手支撑着的前身失去了平衡,倾斜向右边,一直到一听咖啡啪唧滚落地上,穆林森才从粉红冒泡的脑内状态恢复正常,手忙脚乱地抱住还未来得及滑到地面上的食物们,避开正在努力维持身体平衡的乔云探来的疑惑的目光,把食物转移到了自己的办公桌上。
穆林森内心的小人焦急地为刚在的异常举动寻找着理由,内外温差太大脑髓瞬间融化?
对不起我把你白衣黑裤衬托下的平整腰线看成办公桌了!?对不起想给你晚餐一时没拿住摔你撅起的屁股上了!!?……NONONO……穆林森为自己的一时意乱情迷纠结了忧伤了难以自拔了……忽然手臂处传来温温的金属触感,穆林森难堪的回过头,对上乔云坦荡的视线,视线下移,原来乔云是捡起了刚才滚落地上的咖啡碰了下自己的手臂。
“给……掉地上了。”乔云见穆林森呆滞着没有接过咖啡,便伸手把咖啡放在了他桌上,而穆林森的肚子又在此刻幽幽地叫了一声。
穆林森第一次这么庆幸与感激这安静环境中自己肚子的一声吼,掩盖尴尬的最好方式便是制造另一个尴尬,穆林森扯开嘴皮尴尬一笑,对着乔云说:“饿了吧,先补充点再干活。”完全把刚才的尴尬给抛了开去。
“嗯,好。”乔云也用一抹微笑掩饰了尴尬,拖过凳子坐在了穆林森身旁。穆林森把刚才混乱中放下的食物们稍微整了整往乔云面前推了推,然后挑了盒便当便闷头啃了起来,啃饭间隙间开了一听咖啡咕咚咕咚喝两口。乔云也不再客气,确实一天的脑力劳动与精神消耗,在看到食物的那刻他也确实感觉到饥肠辘辘,于是挑了几个饭团就着奶咖吃了起来。
吃完后,穆林森把桌上还剩下的咖啡与食物放在了两桌中间,便于一会儿睡虫袭脑时提神之用,然后拿了个垃圾袋开始收拾桌上的残局。手中麻利地收拾着,脑中却又开始了小遐想,回过头去看了眼临桌,发现乔云又恢复到了他进门时的那个姿势,这次他看清乔云是在摆弄显示器后面的连接线。
“怎么了?”
乔云停下手上的动作回头道:“刚才看着看着表单觉得屏幕有些色偏,我想大概是连接线松了。”说完又继续刚才那个姿势拨弄着连接线。
觉得乔云那个纤腰翘臀实在太挑战自己的理智,穆林森把手中的垃圾袋丢进了身旁的垃圾桶,抬脚走到了乔云身旁。
乔云只觉得自己右边的光线忽然被一个高大的身影遮住,然后有一只资深鼠标手朝自己伸了过来……
第30章:出bug的不仅仅是程序
“我来吧。”穆林森伸手捏住了连接线,乔云慢慢从显示器与办公桌挡板之间的缝隙间抽回手,不经意地碰到了穆林森,穆林森下意识地在那手退开前就避开了,又急忙掩饰般地将手往里伸向了连接线插口位置,稍弯下腰开始摸索起来。
因为电脑已经有些旧,连接线连接屏幕的插口位置已经被灰封住了,虽然之前乔云已经用纸巾擦过,但也许因为背光老化的问题,要松动或者旋紧都有些困难,穆林森想怪不得乔云摸索了半天旋不开,自己粗手粗脚地也旋得很费劲,磕磕碰碰地总算是帮乔云调整好了屏幕。
“好了。”终于不用再对着那身姿想入非非了,“干活吧。”穆林森对着乔云笑了笑,便回到自己座位上。新邮件提示有封来自乔云的邮件,打开一看是刚刚自己下去寻食前拜托乔云发的测试case表,在乔云的一声“谢谢”中,穆林森抖擞了精神开始下半夜的加班。
深夜两三点,瞌睡虫已经绕着穆林森的脑袋360旋舞了几周,穆林森面前桌上也堆了好几个空咖啡罐,手中的case表却只解决掉了四分之一,按照这个速度加上乔云的战斗力,点完所有case可以直接迎接早晨老板的巡查。而且越点穆林森就越灰心,他一边想快点点完所有case完成任务,一边又怕case全部点完bug缺还没跳出来,如果是这样他该怎么办。
“啊!bug出了!”就在穆林森心灰意冷之时,乔云的一声惊喜的喊声仿佛平地一声雷,惊醒了自己,他回过头去看,果然乔云刚刚调试好的屏幕上出现了一个大大的error框,与截图上的一模一样,猩红猩红的,可是在现在的穆林森和乔云眼中,这仿佛与日出前的朝霞一般红的令人振奋。
穆林森一个箭步冲到服务器边,把log通过飞鸽发给了自己与乔云。然后回到座位上拖着自己的凳子坐到了乔云边上。
“快看log!”穆林森催促道。
“嗯!”不知是累了还是兴奋,乔云有些手抖地接收了服务器端传来的log,打开,搜索error log,与客户发来的log进行了对比,“是一样的!”穆林森与乔云同时兴奋的说出口。伴着笑容,乔云苍白了一天的脸上终于出现了血色,穆林森记下了出现bug的case序号,呼出一口气,对乔云说:“你趴着休息会儿吧,我修正完了叫你。”
“嗯,好。”乔云把电脑屏幕关了,揉了揉腰背,便趴在了桌子上。穆林森小心翼翼地把自己的凳子搬回自己办公桌前,根据case中的条件,准备逐行调试程序。为了不发出嘎吱的声音,穆林森刚刚小心翼翼让自己屁股粘上凳子时,便听到身旁有人闷闷地说了一句,“辛苦了。”
穆林森觉得辛苦的是乔云,但是却被哽得说不出口,隔了好久吐出一句“谢谢。”
既然bug已经出了,逐行调试后果然发现了问题所在,原来是从控件跳入spread框时如果是通过鼠标跳入,之后的输入全部都用回车移动光标,而后在数据输入至一半时又从spread框跳出至上方控件,再通过回车移动光标至spread框时,因为用鼠标跳离spread框没有触发预设好的离开事件,flag的赋值未清空,而从控件通过回车移入spread时,flag被二次赋值,赋值便出错了。这个bug只有在spread表单中的特定位置跳离而又先后跳进跳出表单的方式不同才会跳出来,怪不得正常的操作与毫无规律的乱点都没法触及到这个bug. Bug原因找到,只要在进入spread的时候多加一个清空flag的判断就行。不一会儿穆林森便改完了程序,神清气爽得看着外面黎明前黑蒙蒙的天,穆林森忽而感觉刚才好像咖啡喝多了……
从厕所解决完三急回到办公桌的穆林森本准备把乔云叫起来做测试报告,当他看到缩着肩膀趴在桌上沉静入睡的乔云时,顿时放弃了这个想法。穆林森拿起搁在自己椅背上的外套轻轻披在了乔云身上。
穆林森觉得他的人生,大概也出了个不小的bug。
第31章:雨过天晴
第二天早上第一个推开开发室门的杨刚和周纮看到的,是两个趴在桌子上睡的天昏地暗的青年。穆林森瑟缩着肩膀轻轻打着酣,乔云披着穆林森的外套睡得很安静,唯一相同的是两人晕黑的眼圈下安稳的睡颜。
被清晨来上班的人扰了睡梦,乔云先起了身,将身上的外套又轻轻盖回穆林森的身上,然后轻声回自己座位上打开了显示器,发现飞鸽上有穆林森传来的测试报告。
乔云用vss更新了下程序,编译过后运行,打开穆林森的测试报告开始检查,查漏补缺报告开始写给客户的道歉邮件的时候,穆林森也起身了,没有注意到背上盖着的外套,外套一下滑落到了乔云的脚边。穆林森低头捡外套时,看到的是临桌肃着颜皱着眉头低头敲上几个字,又迅速回退的纠结模样。穆林森想自己这次的失误给乔云带来了太大的打击与负担,虽然乔云做事认真仔细滴水不漏,但毕竟他还是个新人,自己非但没有好好指导他,反而事事依靠他麻烦他,真是太……窝囊了。
在昨夜发现自己的人生开始偏离原来轨道的穆林森,在吸引自己偏离轨道的人面前感到特别的无地自容。虽然他还没有意识到,这是面对喜欢的人的时候的自卑与羞涩。
中午的时候终于整理好材料打包上传好程序并且把给客户的赔罪信也准备好了,乔云和穆林森带着赔罪书敲开了俞正和的办公室门。
看完陈恳的赔罪书,俞正和抬眼看到的是两个变身国宝的好爱将,并且其中一位国宝脸上还带着皱七皱八的睡痕,他禁不住噗哧笑出了声,然后又看着两位国宝青年面带诡异地看向他。
“嗯,虽然这次bug出得很凶残,但是因为客户后来的运行也没有再机缘巧合地点出来,其实昨天晚上我接到了客户的电话,为自己之前过激的语气表示道歉……”看到乔云和穆林森明显松了口气,俞正和又板起脸来正色道:“以后这种bug还是尽量要避免发生,这是个人乃至公司的信誉问题。”
“嗯嗯!明白明白!”穆林森显然只听到了前半句关于客户道歉的话,后半句只是稍过了下脑,他现在只想念着家中温暖的床,搞定测试报告的时候天已经亮了,对报告苦手的穆林森期间无数次想把乔云拍醒帮忙,可是每次回头看到乔云一动不动安静的睡颜时又何其的不忍心,于是便咬着牙又灌下三灌咖啡,硬撑着写完报告飞鸽了乔云,才趴下即睡死。今天早上会醒来并不是办公室逐渐增加的人气,而是给那三灌咖啡给憋醒了。如今听到俞正和的话简直如蒙大赦,就等着俞正和一拍板遣他俩回家补眠。
“乔云你先回去休息吧。穆林森你再留一会儿。”穆林森没想到老板只赏了他搭档,硬是将困死懵懂的他给留下了,欲哭无泪。
“你觉得乔云,怎么样?”
“啊?”懵懂中怎么能问这么暧昧的问题啊!穆林森内心的小人在抱怨。
“昨天客户电话来其实还有一个目的,他们还有一个社内小系统,不是BC模式的,就是单纯的单机模式,是给部长级别以上的人管理项目与人事用的。你挑个两三个人跟着你做一下。”
“哦哦……”穆林森才反应过来,乔云进公司两个多月,还有一个月试用期满,老板大概是在征询他意见看是否能留用。如果他挑选了乔云继续合作这个小项目,那也就等于公司会签下乔云。如果他不选乔云,那乔云的何去何从就不是他能够掌控的了,也许他的选择会直接将乔云推出了公司们也不一定。
从业务与工作上,穆林森当然是希望与乔云继续合作的,可是想到昨夜自己的屡屡失态以及后来自己内心的颤动,在心理上他又是希望和乔云保持距离的。
理智与感性拉扯着穆林森的选择,让他无所适从。
第32章:出bug的也不仅仅是穆林森
其实昨天当穆林森从楼下买完食物回到开发室的时候,乔云是听见响动的,但是因为在努力调试屏幕而并未理会,但是当身上突然传来一阵温暖的接触的时候,他确实是吓到的,他以为那温暖是来自开发室中另一个人的手,直到一罐咖啡滚落地上,他才回头看到放在自己身上的是本该属于他俩的晚餐。
乔云疑惑又有些失落地看向穆林森,还没有巴望到答案,就被对方的一声肚子叫给搅合了,于是就坐下各吞各饭。吃完后乔云继续摸索他的屏幕连接线,已经把连接线故紧螺丝上的灰都基本擦干净了,也不知道是自己的手在缝隙里的角度问题还是什么,怎么旋也旋不开,折腾着折腾着,忽然穆林森出手相助了。
触碰是不经意的,但是乔云还是感觉到了穆林森刻意的回避。穆林森偶尔的坦然偶尔的木然偶尔的顺其自然又偶尔的漠然让乔云觉得无力,乔云想到了那个装满他黑历史的硬盘,那是他觉得除了工作之外唯一联系着自己和穆林森的东西,一个共享的秘密,在穆林森一次次的坦然与顺其自然中看淡,又在一次次木然与漠然中蹭蹭冒起,乔云觉得这如同过山车般的心情似曾相识。
进入工作状态后的乔云便忘了刚才穆林森的各种怪异举动,一门心思地照着刚才写的case顺序做着测试。深夜两点多的时候终于在他的屏幕上终于出现了那个猩红色的error框,乔云激动地不禁叫出了声,“啊,bug出了!”,然后他就看见穆林森蹭地一下从座位上窜起,飞奔到服务器前去了。
在确定bug找到过后,稍放松下来的乔云看着电脑上的log上的标签仿佛都在打转,生日后的过度体力消耗还没恢复过来突然通宵对应bug,让乔云有些虚脱。可是bug的发现只是第一步,还要修正还要测试还要写报告……
“你趴着休息会儿吧,我修正完了叫你。”身边的穆林森呼出一口气,对乔云说道。
“嗯,好。”确实是累了,乔云想着就趴一会儿便趴在桌上眯起了眼,“辛苦了。”比起自己,穆林森的压力应该更大,而自己只能辅助他,给他一句——辛苦了。迷糊间,忽然觉得身上有点凉,乔云怕太大的响动影响穆林森,便自己瑟缩了下肩膀,不久便感到背后暖暖地,披盖着的应该是穆林森的外套。