“那桌等了多久?”
陈序一边问,一边朝街边安静些的位置走。
“十几分钟吧。人家看手机上一直写着等确认,以为我这边忙,后来实在等不住才来问。”何姨说,“我电脑上刚才什么也没响。现在页面一刷新,又蹦出来两条,我都不敢点。”
“先别用桌码了。”
陈序的声音很稳,脚步却已经快起来。
“您先把桌上的码收一下,所有还没确认的单都按纸菜单重新对一遍。刚才等久的那桌,您跟他们说是试用出了问题,这顿饮料算我的。后面先照原来的办法点,不要等我。”
何姨应了一声,又问:“你现在能过来吗?”
“能。大概四十分钟。”
挂断电话,陈序低头查了最近的公交。从手作街回南澄大学要穿过半座老城,公交还得换一次车。下一班还有六分钟,算上晚高峰,四十分钟只是最顺利的情况。
程意站在他旁边:“严重吗?”
“页面没提醒,单子卡在待确认。暂时没做错菜,人也都在。”
“我们一起去。”
“不用。”陈序点开打车软件,前面还排着十几个人,便重新看向公交站牌,“你们接着逛。唐棠难得来一次,别全耗在饭馆里。”
唐棠皱眉:“你自己能处理?”
“现在不知道。先把营业接回纸单,后面再查。”
他说得很快,却没有逞强说一定没问题。程意还想开口,陈序将手里那袋没吃完的栗子塞给她。
“前面不是还有夜市吗?你带唐棠去。弄完我给你发消息,来得及就过来找你们。”
“陈序——”
“真不用跟。”他看着程意,语气放缓了一点,“你们去了也得等我查。先玩,我有事会说。”
公交已经从路口拐过来。
陈序朝她们挥了下手,转身跑向站台。车门将要合上,他侧身挤进去,隔着玻璃又指了指手机,意思是随时联系。
车很快汇进晚高峰的灯流。
程意站在原地,看着那一点红色尾灯消失。
唐棠剥开一颗栗子,递给她:“走吧,不是让我们接着玩吗?”
“嗯。”
程意接过,却没有吃。
……
何记小馆门口,两块桌码已经被何姨倒扣在收银台旁边。
陈序赶到时,额前的头发被汗打湿,后背也黏在衣服上。他来不及喘匀,先走到那桌等久的顾客面前,将事情解释清楚。对方是两个留校的学生,后来按纸单点的菜已经上齐,脸色说不上好看,却也没有继续为难。
“刚才手机上一直写着等确认,我还以为你们已经看见了。”其中一个男生说。
“是我们这边没提示,状态也没说清楚。”陈序没有推给网络,“耽误你们了,饮料我来结。要是还想加菜,今晚直接叫何姨,先不走这个页面。”
男生看了他一眼:“你就是做这个的?”
“对。”
“那你得改改。等着比直接告诉我坏了更烦。”
“我记住了。”
陈序说完,才回到收银台后。
店里的吊扇转得很快,送下来的仍是带着油烟味的热风。厨房有人翻锅,火焰轰地响了一声。何姨在桌边收菜单,旧电脑上,两条迟来的提醒仍留着。他核对记录,第一桌等了十九分钟才被发现,另一桌等了十一分钟。
两笔单都还在。陈序却没有因此松口气。
这十九分钟里,电脑安安静静,何姨照常忙,客人也以为自己正在排队。两边都没有做错什么,却一起被他那个看起来正常的页面耽误了。
陈序将电脑拉近,先看网络。刚才路由器短暂断过一次,网页右下角的连接标志停在旧状态,重新联网以后也没有自动恢复。页面没有红字,没有警告,甚至还保持着正常的颜色。
鼠标移上去,甚至还能按动按钮。难怪何姨没发现。
陈序把这两条订单的时间、桌号和网络恢复时间记下来,又核对有没有遗漏。确认只有两桌受影响以后,他才打开代码。
何姨端菜经过,问:“能弄好吗?”
“能。今晚先不恢复,您都用纸单。”
“那你慢慢弄,别挡着收钱。”
她说完便将他连人带椅子往旁边推了一点。
陈序抱着电脑让开,背靠墙坐在一张矮凳上。收银台不断有人结账,零钱碰撞、塑料袋被扯开的声音离他很近。他先让页面在断开网络时直接变红,写清“当前离线,请改用纸单”;又增加自动重连,连接恢复以后,将没有处理的订单重新推到最上面。
真正难的不是让提示音重新响。
是即使提示音没响,也不能让一笔等待悄无声息地被埋在下面。
代码改到一半,手机震了一下。
程意问:“到店了吗?”
陈序腾出一只手回复:“到了。问题找到了,没人受伤,程序重伤观察。”
程意没有接他的玩笑:“顾客那边处理了吗?”
“处理了,先恢复纸单。你们放心玩。”
消息发出去,对面过了半分钟才回一个“嗯”。
陈序将手机扣到腿边,继续盯着屏幕。
……
另一边,程意和唐棠已经走进夜市。
入口挂着成排的暖黄色灯笼,铁板上的油滋滋作响,烤鱿鱼、糖炒栗子和香水的味道混在一起。摊主隔着人群招呼客人,前面有人举着一大串拍照。
唐棠在一个耳饰摊前停下,拿起两枚银色耳夹。
“哪个好看?”
程意低头看手机:“银色那个。”
唐棠将两枚耳夹举到她眼前:“两个都是银色的。”
程意这才抬起头。
唐棠将耳夹放回去:“走吧。”
“去哪?”
“何记小馆。”
“他说让我们继续玩。”
“所以你准备一路看着手机玩?”唐棠接过她手里那袋栗子,“你再看两次,屏幕都要被你看出答案了。”
程意抿了下唇:“我只是想知道处理得怎么样。”
“那就去看。”
“我们过去也帮不上代码。”
“谁说要帮他写代码了?”唐棠已经打开地图,“饭馆出问题,店里总有别的事。就算真帮不上,站那儿看一眼也比你在这儿魂不守舍强。”
程意没有再反驳。
两个人走到夜市背后的路口,等了一会儿才拦到空车。车里有股被晒热的皮革味,窗户降下一条缝,街上的吆喝声很快被甩在后面。
程意把何记小馆的地址报给司机,又点开陈序的头像。
输入“我们过去了”,想了想,删掉。万一他看见消息,又腾出手来劝她们别去呢。
唐棠在旁边看得直摇头:“去都去了,还装。”
程意按暗屏幕,看向车窗。玻璃上映着她没能收住的神情,她只好把脸又侧开了一点。
……
陈序第一次测试自动重连时,店门上的风铃响了。
他以为是客人,没有抬头。直到一双白色运动鞋停在电脑旁边,熟悉的声音从头顶落下来。
“程序还活着吗?”
陈序的手停在键盘上。
他抬头,先看见程意,又看见站在她身后的唐棠。两个人都走得有些急,程意脸侧的碎发被风吹乱,唐棠手里还提着那袋已经冷掉的栗子。
“你们怎么来了?”
“逛完了。”程意说。
唐棠看了一眼墙上的钟:“夜市进去十三分钟,确实逛得很完整。”
程意转头瞪她。
唐棠若无其事地问陈序:“有什么能帮忙的?”
陈序原本想说没有。话到嘴边,他却忽然不想再把这份主动推回去。
“有。”他说,“何姨顾不上收桌,先帮她把空碗送进去,别碰热盘子。再帮我看一眼手机,要是有提示就告诉我。”
程意把包放到他身旁,挽起袖口。唐棠先问何姨干净抹布放在哪儿,接着端起门口那桌的空碗。她怕汤洒到外套上,动作很小心,走到后厨门口还得侧身给人让路。
陈序看了一眼,没来得及笑,程意已经把装栗子的纸袋打开,搁到他伸手够得到的地方。
“垫两口。晚饭吃了吗?”
“还没有。”
她看了他一眼,没训人,转头去问何姨有没有能快一点做好的面。
后来一个学生拿着先前保存的菜单链接来问,怎么还不能点。唐棠把纸菜单递过去:“今天先用这个。他在修,别等着,饿了难受。”
她说完回头,看见陈序正望过来,眉毛一挑:“看什么?修你的。”
陈序坐在墙边,听见她们的声音,敲键盘的手慢慢稳下来。
他原本已经想好,修完以后跟程意说问题不大,再补一句让她们玩得开心。这些话说熟了,连怎么笑都不需要想。
可她现在就在几步远的地方。头发随手拢到耳后,袖子挽着,端一碗面过来时还小声提醒他别碰到电脑。
他还没把狼狈收拾好,她已经到了。
陈序忽然有一点委屈。刚才被人催、被人问的时候,他满脑子都是赶紧修好,顾不上觉得难受。可现在有人把热面放到面前,问他吃没吃饭,那股被他压下去的慌张和疲惫,反倒一起涌了上来。
他以为自己只能等事情解决,再轻轻松松地回到她们身边。原来他这么不好看的时候,她们也愿意过来。
他甚至还没来得及告诉她们,今晚多亏你们过来了,心里便已经安稳了许多。
陈序接过筷子,低头吃了一口。面有些烫,葱花和麻油的香气一起浮上来。他低着头缓了缓,就着热汤慢慢咽下去,终于觉得这一晚没那么难熬了。
“怎么了?”程意问。
“没事。”他看向她,笑意很浅,却没再拿程序开玩笑,“你们能来,我挺高兴的。”
程意像是没料到他这样说,端着空托盘愣了一下。
“那你赶紧弄好。下次别让我们来饭馆帮忙了。”
她端着托盘回收银台,本来还打算说他两句,怎么一忙起来又忘记吃饭。走出两步,嘴角却先翘起来,只好低下头去找放托盘的位置。
……
九点过后,店里只剩两桌客人。
陈序关掉路由器,页面几秒后变成醒目的红色,清楚写着连接中断。重新打开,红色提示消失,两笔测试订单重新出现在最上方,提示音也跟着响起。
何姨亲自试了两遍。
“这回断了能看见。”
“恢复以后,没处理的会一直放上面。超过五分钟,颜色会变。”
“那明天能用?”
“先别全开。我再看一晚记录,明天上午过来。”
陈序没有因为眼前跑通便急着恢复。何姨点点头,正准备关电脑,唐棠从收银台边拿起倒扣的桌码,对着手机拍了一张。
“这个一直不变吧?”她问。
“每张桌一个码,暂时不变。”
“那我把照片带回酒店,明天坐床上给六号桌点十份红烧肉,你们怎么办?”
陈序愣了一下。
“店家不确认,就不会进后厨。”
“那我每隔一分钟下一单呢?”唐棠看着他,“或者把照片发给别人,十个人一起点。何姨明天是不是得一直判断,店里到底有没有这桌客人?”
墙上的风扇还在转。
陈序后背的汗却突然凉了。
他一直在想正常顾客怎样更方便地点菜,怎样确认,怎样修改。桌码贴在桌上,所以他理所当然地认为扫码的人就在桌边。
可二维码不会认人,也不知道拍下它的手机已经走到多远。
订单确认挡住了后厨,却挡不住有人用假订单把何姨拖进另一种忙乱里。
“保存链接也可以吧?”唐棠继续问,“不用拍第二次?”
“可以。”
“同一张桌能不能几个人反复提交?”
“现在可以。”
“桌上没人呢?”
陈序盯着那张小小的二维码,半天没回答。
程意站在旁边,也听明白了:“这不只是有人恶作剧。真推广到别的店,老板一旦收到几次假单,可能就不敢用了。”
“对。”
陈序把视线从桌码上移开,看向唐棠。
“谢谢。”
唐棠手里的桌码还举着,听到这句,反而停了一下。
“我还没帮你解决。”
“能在出事以前想到,就已经是帮忙。”陈序说,“这个比刚才没提示更危险。”
他没有再接一句玩笑,也没有因为发现漏洞的人是唐棠,便先替自己找理由。
唐棠看了他两秒,移开目光:“你知道就行。别回头又说我只会挑你的毛病。”
“这个真不是挑毛病。谢谢你。”
“随你。”
何姨在旁边听得发愁:“那这些码还留不留?”
“今晚先收。”陈序说。
陈序拿了张纸,在桌号边上画出一道开关,又停下想了一会儿。
“先让码认这一桌客人。”他说,“有人坐下,您点开台,桌上放一组临时数字;第一次提交填一下,走了就关掉。旧照片能看菜单,没有这一轮的数字,不能直接下单。反复乱点也得有限制,不能一直响。”
何姨听明白了,眉头却没全松开。
“我还得多管这一步?”
“得。所以先试几张,您觉得添乱就不用。以后能不能省掉,我再想办法。”
陈序没把纸推过去,先在旁边添上“开台、关台”几个字。上一页还记着要替何姨少跑几趟,这一页却又让她多做两件事。他拿笔尖抵着那个小框,第一次觉得,能挡住问题,跟好用,还隔着一段距离。
何姨俯身看了一会儿。
“明天能试?”
“先试,不直接用。”陈序说,“明天我把刚才几种情况都测过,再请您看。能不能多放两张桌,您说了算。”
唐棠看他:“不熬夜把全店改完?”
“现在脑子发热,越改越容易多一个洞。”陈序合上电脑,“先把规则画清楚,明早再写。”
她轻轻挑了下眉,没有说话。
这个回答比一句“今晚一定弄好”更让人放心。
……
第二天上午,陈序重新来到何记小馆。
昨晚他回到寝室,只补完测试清单便睡了。早上重新打开电脑,才照着纸上的顺序往下做。
第一轮没有顺利通过。何姨关台以后,程意的手机还留着上一桌的已选菜品。陈序顺着这一步查,改完再试,又把前面已经通过的几项重新走了一遍。
后来唐棠赶到,把昨天拍下的桌码翻出来,坐到店外点了一桌红烧肉。页面照常能看,提交却卡在那组临时数字上。她故意连按了好几次,店里的电脑始终没响。
何姨在屋里开了台,程意输入新数字,正常的测试单才到了店端。等何姨关台,再用同一张页面提交,屏幕便提示联系店员。
“我坐在店里,记住数字,走了以后赶在她关台之前乱点呢?”唐棠又问。
“还是得拦。”陈序把这条也记下,“所以何姨要对一下桌上有没有人,短时间反复提交也先停住。今天只能把旧照片随便下单这个洞补上,剩下的继续改。”
唐棠把手机放下,没有再故意找一句话损他。
“这次算你想得还行。”
“临时安全顾问评价很高。”
“谁是你的顾问?”
“一会儿请吃饭,按临时工餐补算。”
唐棠刚要拒绝,程意已经说:“要吃。她昨天把你从一个大坑边上拽回来,至少两顿。”
“那就两顿。”陈序答得很快。
“我说一顿了吗?”
“你没说,所以听程意的。”
何姨从收银台后抬起头:“先别研究吃几顿。好了没有?一会儿该来客了。”
午饭前,他们又测了断网、超时、重复提交和主动关台。纸菜单始终放在桌角,页面一旦看不明白,何姨便直接关掉桌码,照原来的办法营业。
真正来了两桌学生以后,陈序没有再坐在电脑前替何姨操作。她自己开台、确认、关台,第二桌结束时已经不需要回头问他。
“先放四张。”何姨说,“用稳了再加。你也别天天守在我这里,哪有老板比做东西的人还胆子大。”
阳光从玻璃门照进来。何姨把新摆上的桌码转了个方向,正对着客人落座的位置,又招呼他们往里面让让,别挡着门。
陈序抱着电脑挪开。昨天那通电话响起时,他甚至做好了两张桌全被收走的准备。如今四块小牌子留在那里,比他在寝室里试过多少遍都更让人想多看一眼。
程意也在看,胳膊轻轻碰了碰他。
“走了。”她说,“你欠的饭还记得吧?”
……
午后,三个人在学校外面找了家砂锅店。
锅底咕嘟咕嘟冒着热气,白菜和粉丝吸满汤汁。唐棠夹起一片牛肉,仍不肯承认自己今天帮了多大忙。
“我就是随口一问。”
“随口一问,挽救简点于危难。”陈序举起饮料,“临时安全顾问,敬你。”
“少来。”
唐棠嘴上嫌弃,还是拿自己的杯子碰了一下。
程意把盛好的汤推给陈序:“先吃吧。昨晚一碗面放到凉,你就顾着说一会儿。”
陈序把杯子放下,端起汤,老老实实喝了两口。
唐棠看了他一眼:“你不是让我们继续玩吗?”
“我也没想到你们会来。”
“主要是某个人一路看手机,魂都跟你上公交了。”
程意夹菜的手停住:“唐棠。”
“我说错了吗?”
陈序低头喝了口饮料,努力把笑压下去。
程意立刻转向他:“你笑什么?”
“我觉得砂锅不错。”
“那你盯着锅笑。”
陈序真把脸转向砂锅,嘴角却还是没能完全收住。
唐棠看着两个人,忽然也笑了一下。
昨晚在饭馆里,她有一阵是真的很烦。好端端的假期,忽然成了替陈序收碗,她新买的袖口还蹭上一点油。
可她洗完手回去,看见何姨又在问,万一明天还不响该怎么办。陈序把刚端过来的面往旁边放了放,重新打开页面,一步步指给她看。
同样的过程,唐棠已经听过两遍。他倒一点没嫌烦,讲完又等何姨自己试。
后来她问出那个漏洞,陈序也是这样认真地听,没有先笑她不懂,也没拿两句漂亮话把问题绕过去。
唐棠低头拨开碗里的葱花。她依旧想找机会赢他一回。但下次再说他只会嘴上哄人,好像就有些亏心了。
“陈序。”
“嗯?”
“今天这顿要是不好吃,也算你的系统问题。”
陈序点头:“行。以后你对我有意见,先统一提交,等我确认。”
“那你可能会收到很多单。”
“没事。”他看了一眼坐在中间的程意,“反正这次有人帮我看着,应该不至于漏。”
程意没有接话,只低下头,将砂锅里最后一块牛肉夹进了陈序碗里。
动作很自然,像只是顺手。
陈序看着碗里那块肉,忽然觉得,昨天被提前截断的假期,其实并没有完全浪费。
他们没能走完原来的行程。
却有人在他先离开以后,沿着那条路找了过来。