Skip to content

第四十五章 深夜食堂

半结构化方案跑通之后,团队像换了一台发动机。

陈一鸣把v0.1原型拆开重写了一遍,前端从简陋的白底黑字变成了带进度条的分步引导界面,每个问题下面的按钮都配了图标和颜色区分。他在群里发了新版截图,附带一句话:"UI改了,你们别再说丑了。"

方小满回:"嗯……还是丑。"

陈一鸣:"你来。"

方小满:"我不会。"

陈一鸣:"那闭嘴。"

苏雨晴在两人吵完之后默默发了一份文档,标题是《半结构化输入问题库v1.2》。四百二十七条商户原话被她拆成了六个模块,每个模块下面的选项全部用商户原话改写,没有一个技术术语。林知行翻到"定价参考"模块,发现一个选项写着"比隔壁便宜一点"——来自苏雨晴在五金店蹲点时听到的一句话。

他在群里打字:"问题库没问题,可以开始做了。"

陈一鸣:"收到。"

苏雨晴:"收到。"

方小满:"收到。所以我是干啥的?"

林知行:"你去联络商户,看谁愿意第一个试。"

方小满:"行,这个我在行。"


全速开发的节奏比林知行预想的要快。

陈一鸣白天上课,晚上写代码,凌晨两点睡觉,早上七点起床。他给每个模块搭了独立的前端组件,后端用规则引擎统一处理选择结果。苏雨晴拉着五金店的叔叔远程测试了一遍,叔叔选错了三次,她把这些反馈记录下来,改了十一处措辞。林知行在做决策日志的设计,把排课系统的解释层逻辑移植过来。

四个人各干各的,群里的消息从早上八点持续到晚上十一点。

那几天,方小满的状态和其他三个人不太一样。

他依然在群里活跃,依然接话、开玩笑、催进度。但林知行注意到一个细节:方小满回复消息的速度变慢了。以前他在群里基本秒回,现在有时候隔了半小时才冒出来一条"嗯"或者"收到"。

林知行以为他在忙联络商户的事,没多想。


方小满的专升本结果是在一个周三的下午出来的。

那天林知行在宿舍写代码,陈一鸣在实验室调试服务器,苏雨晴在外面跑商户。方小满从外面回来,推门的时候表情和平时没区别——笑嘻嘻的,手里拎着两瓶水。

"渴不渴?"他把一瓶水放在林知行桌上。

"谢了。"林知行接过来,没抬头。

方小满在自己桌前坐下来,拧开瓶盖喝了一口,然后把手机放在桌上,屏幕朝下。

过了大概两分钟,他说:"专升本出结果了。"

林知行的手指停在键盘上。

"差三分。"方小满说,语气很平,像在说今天食堂的菜涨了三块钱。"英语差三分。"

林知行转过头看他。

方小满在笑。是那种他惯常的笑,嘴角上扬,眼睛眯起来,看起来什么事都没有。

"没事,"他说,"本来也没抱太大希望。英语那玩意儿,我底子太差了。"

他说完又喝了一口水,拧上瓶盖,把手机揣进口袋,站起来往阳台走。

"我去抽根烟。"

林知行没说话。

方小满不抽烟。他们住了快三年,偶尔有人递烟,他都是摆手拒绝。

阳台的玻璃门关上了。林知行从椅子上侧过身,透过门上的磨砂玻璃看到一个模糊的影子,蹲在角落里。

他转回来,盯着屏幕上的代码。

代码一行也写不进去。


方小满在阳台上待了一个多小时。

林知行中间起来倒了两次水,经过阳台门口时放慢了脚步。磨砂玻璃后面的影子没怎么动过,偶尔有烟头的红点亮一下。第二次经过的时候,他闻到了浓重的烟味。

他回到座位上,把笔记本电脑合上。

想了想,又打开。

想了想,又合上。

他拿起手机,给方小满发了一条消息:"饿不饿?"

过了十分钟,方小满回了一个字:"嗯。"

林知行:"去吃面?"

方小满:"行。"

林知行站起来,走到阳台门口,推开玻璃门。

方小满蹲在角落里,面前的地上有七八个烟头,旁边还有半包烟,是那种五块钱一包的白沙。他的手指被烟熏得发黄,眼睛有点红,但表情还是笑嘻嘻的。

"走吧。"林知行说。

方小满站起来,膝盖咔嚓响了一声。他把半包烟和打火机揣进裤兜,跟着林知行出了门。

两人谁都没提专升本的事。


学校后门出去左拐,三百米,有一家深夜食堂。苍蝇馆子,六张桌子,老板是个五十多岁的胖大叔,围裙上全是油渍。白天不开门,晚上九点才营业,一直开到凌晨三点。

林知行和方小满到的时候是晚上八点半,店刚开。

"来两碗牛肉面。"林知行对老板说。

"大碗小碗?"

"大碗。加蛋。"

老板看了他们一眼,没多问,转身去了后厨。

两人坐在靠墙的那张桌子旁。桌面是不锈钢的,擦得不太干净,有几圈水渍。头顶的风扇转得很慢,发出嘎吱嘎吱的声响。

方小满坐在对面,两只手插在口袋里,靠在椅背上,看着天花板。

林知行看着桌面。

周围没有别的客人。后厨传来锅铲翻炒的声音和水烧开的咕噜声。风扇继续嘎吱嘎吱。

这种不是尴尬的安静。林知行以前在很多场合经历过尴尬的安静——面试的时候、被老师点名的时候、和不认识的人坐电梯的时候。那种安静里有一种张力,像绷紧的弦。

现在这种安静不一样。它不需要被打破。

两碗面端上来了。大碗,加蛋,牛肉铺了半碗,汤上面飘着一层红油和葱花。热气腾起来,模糊了对面那张脸。

方小满拿起筷子,先夹了一口面。

林知行也拿起筷子。

两人吃面的速度都不快。方小满平时吃饭很快,三口两口就扒完一碗,今天他一小口一小口地吸,偶尔停下来喝一口汤。

林知行吃得更慢。他其实不太饿,但他知道方小满需要有人陪他坐在这里。

吃到一半的时候,方小满忽然抬起头,看着林知行碗里的鸡蛋。

"你那个蛋,蛋黄是生的还是熟的?"

"熟的。"

"我的也是。"方小满又低头吃了一口面,"我不喜欢溏心蛋。看着怪恶心的。"

"我知道。"

"你知道?"

"你大一的时候说过。食堂的番茄炒蛋你说太嫩了,像生的。"

方小满愣了一下,然后笑了。"你连这个都记得。"

"我记性好。"

"你是记仇。"

"记仇用另一个文件存。"

方小满又笑了一声,这次比刚才真了一点。

然后他又低下头吃面,没再说话。


面快吃完的时候,碗底只剩下汤和几根碎面。方小满把碗端起来,把汤喝了一大口,放下碗,用袖子擦了擦嘴。

"知行。"

"嗯。"

"你要是赢了这个比赛,"方小满说,"替我也赢了。"

他说这句话的时候语气很轻,像在说一件不重要的事。但林知行听出了重量。这不是随口一说,是方小满想了很久才说出口的。

林知行放下筷子,看着他。

"你本来就是团队的人。"他说。

方小满笑了一下。是那种他熟悉的自嘲的笑——嘴角扯起来,但眼睛里没什么光。

"我是团队的什么?"他说,"我又不会写代码。"

这句话林知行听过很多次。方小满说这话的时候总是带着玩笑的语气,好像真的不在意。但今天他听出了不一样的东西。以前方小满说"我又不会写代码",重点在"不会";今天这句话的重点在"什么"。

他在问:我在你这里,到底算什么?

林知行想了想。

他不是那种能说出漂亮话的人。从大一到现在,他和方小满之间的默契都建立在不说话的基础上——方小满帮他打饭,他帮方小满改作业,方小满替他怼嘲笑他的人,他在方小满喝醉的时候把他扛回宿舍。这些事他们从来没说过谢。

但今天,方小满在问"我是团队的什么"。

这次需要一个回答。

"你是团队的嘴。"林知行说。

方小满抬头看他。

"没有你,我们连张老板都见不到。"林知行说,"排课系统的活是你拉的,商户群是你建的,团队里每一个人都是你找来的。你不是不会写代码,你是不用写代码。"

他顿了一下。

"你能做我们谁都做不了的事。"

方小满没说话,但他的表情变了。

自嘲的笑还挂在嘴角,但底下有另一种东西在往上浮。是一种被确认的感觉。像一个人觉得自己是多余的,忽然有人说你不多余,你刚好是缺的那块。

他的笑变了味道。

从自嘲变成了真的笑。不是大笑,是那种嘴角带着弧度、眼睛里有了一点光的笑。

"你什么时候学会说人话了?"方小满说。

"跟你学的。"

方小满噗嗤一声,差点把嘴里的汤喷出来。他用手背擦了擦嘴角,摇了摇头。

"行吧。"他说,"我是团队的嘴。那你是什么?"

"我是团队的脑子。"

"陈一鸣呢?"

"陈一鸣是手。"

"苏雨晴呢?"

林知行想了想:"苏雨晴是耳朵。"

方小满皱眉:"为什么是耳朵?"

"她是唯一一个愿意听商户说话的人。"

方小满想了想,点了点头。

"脑子,手,耳朵,嘴。"他掰着手指头数,"就四个人,凑了半个人。"

"够了。"林知行说。

"够什么?对手是清华的。"

"对手是清华的,但我们有清华没有的东西。"

"什么?"

"你。"

方小满又愣了一下。然后他伸出手,拍了一下林知行的肩膀。力气不大,但很实在。

"行。"他说,"那我这个嘴,明天就去给你找几个商户。"

"你不是在找吗?"

"还没开始。之前一直在等你们把东西做出来。现在东西能用了,该我上了。"

方小满把最后一口汤喝完,把碗放在桌上,站起来。

"走吧,回去睡觉。"

林知行也站起来。他走到柜台前面,掏出手机扫码付了账。两碗大碗牛肉面加蛋,二十八块。

出了店门,晚上的风凉了一些。学校后门那条路没有路灯,只有远处食堂招牌的光映在地面上。

两人走在路上,影子被拉得很长。

方小满走在他右边,手插在裤兜里,步子比平时慢一点。

走了大概一百米,方小满忽然说:"知行。"

"嗯。"

"你记不记得大一的时候,你说过一句话?"

"哪句?"

"你说,人生就是一个算法题,只要找到最优解,就能过好。"

林知行记得。那是他刚接触算法思维的时候,跟方小满在操场上聊天,他随口说的。

"现在还这么觉得吗?"方小满问。

林知行想了想。

"不完全是了。"他说。

"为什么?"

"因为你不是一道题。"林知行说,"专升本也不是一道题。它没有最优解。"

方小满没接话。

两人继续走。快到宿舍楼下的时候,方小满拍了拍林知行的肩膀,这次力气比刚才大了一些。

"回去吧。"他说,"明天我干正事。"

他先一步走进了楼道。

林知行站在楼下,看着他的背影消失在楼梯拐角。

他掏出手机,看了看时间。十点十七分。

他在手机备忘录里打了一行字:方小满——专升本差三分——英语。

然后他又删掉了。

不需要记。这件事他忘不了。


第二天早上,林知行醒的时候方小满已经不在床上了。

他看了一眼手机,群里没有新消息。时间是早上七点四十。

他以为方小满去食堂了,没在意,翻了个身继续睡。

九点的时候,他在群里发了一条消息:"今天继续做决策日志模块。陈一鸣,你的规则引擎接口文档发我一下。"

陈一鸣秒回:"邮箱发了。"

苏雨晴:"我在五金店,下午回来。"

方小满没回。

十点的时候,方小满在群里发了一条消息。不是回复林知行的,是一条新消息。

"各位,我刚才在几个本地商户群里发了个消息。"

下面是一张截图。

截图里是一个微信群的消息,发信人是方小满,消息内容是:

"各位老板好!我是之前帮张氏教育做排课系统的那个小林AI工作室的方小满。我们团队做了一个AI小工具,能帮店里管库存、算账、排班。现在开放免费试用,一个月见效,不满意不要钱。感兴趣的老板扣1,我私聊您。"

林知行看着这张截图。

"你在哪些群发了?"

方小满:"本地中小商户联盟群、学校周边美食群、五金建材交流群、还有一个什么便利店老板群。"

"这些群你怎么进的?"

方小满发了一个微笑的表情:"这几年帮张老板跑腿加的。还有我爸的一些老朋友。还有一些是我自己在网上找的。"

陈一鸣:"你加了多少个商户群?"

方小满:"十七个。"

苏雨晴:"……"

林知行看着屏幕,想说什么,又不知道该说什么。

他想起昨晚方小满说的那句话——"明天我干正事。"

这个人说到做到。

方小满继续发消息:"我已经私聊了三十多个老板,介绍了我们的工具。有几个说先看看,有几个直接问怎么用。我让他们发了店铺类型和主要需求,回头整理成表给你们。"

林知行打字:"你什么时候开始弄的?"

方小满:"早上六点。"

陈一鸣:"六点?你不是最晚起的那个吗?"

方小满:"睡不着。"

群里安静了三秒。

苏雨晴发了一条消息:"方哥,我敬你一杯。"

方小满:"大早上喝什么。"

苏雨晴:"不是酒。是敬意。"

方小满没回。但林知行注意到,他的头像旁边出现了"对方正在输入"的提示,闪了两下,消失了。

过了一会儿,方小满发了一条消息:"行了别煽情了。我继续去聊了。有结果了发你们。"


两天后,方小满发来了一份表格。

Excel文件,三列:商户名称、店铺类型、主要需求。

十七行。

十七家商户。奶茶店、五金店、小餐馆、水果店、便利店、文具店、打印店、小吃摊、卤味店、杂货铺。

林知行打开表格,从头看到尾。

每一家商户后面都附了方小满的备注——"这个老板人不错,但疑心重,要多聊几次"、"这家店两个合伙人,意见不一致,先对接其中一个"、"这个老板娘说普通话带口音,苏雨晴你去的时候慢点说"。

这些备注不来自任何算法,来自方小满两天之内打了四十多个电话、跑了六家店、喝了十二杯茶的成果。

他把表格发到群里。

陈一鸣:"十七家。"

苏雨晴:"这么多?"

方小满:"嫌多?那我退几家?"

林知行:"不嫌多。"

他看着这份表格,忽然意识到一件事。

他们有了真实的测试用户。不是模拟数据,不是实验室环境,是十七个真实的、愿意花时间试一试他们这个半成品的商户。

代表作不是代码,不是比赛评分。代表作是有人用了你的东西之后说"这个好"。十七家商户,十七个"我愿意试试"。这就是起点。

他在群里打字:"方小满。"

方小满:"咋了?"

林知行盯着屏幕,手指在键盘上停了几秒。

他想说谢谢,但这个词在他们之间从来不存在。方小满帮他拉第一个客户的时候他没说过,帮他扛回宿舍的时候没说过,帮他怼嘲笑他的人的时候也没说过。

他说:"你不让我花钱,你就花脸。"

方小满回了一个字:"呸。"

然后他又发了一条消息:"这叫口碑营销。你一个搞技术的不懂。"

林知行看着屏幕,笑了。

方小满:"明天开始部署吧?我约了第一家店,奶茶店,后天下午。"

林知行:"好。"

陈一鸣:"我把代码再检查一遍。"

苏雨晴:"我把问题库再过一遍。"

方小满:"那我继续去花脸了。"

林知行关掉手机,靠在椅背上。

窗外的天很蓝,是那种秋天特有的蓝,高远、干净。楼下有拍篮球的声音传上来。

他想起深夜食堂里,方小满说的那句话——"替我也赢了"。

他不知道这个比赛最后能不能赢。但他知道,从今天开始,他们不只是在做一个比赛作品了。

他们在做一个真的东西。一个有人愿意试的东西。

(本章完)