晚上十点四十三分,陈峰还在出租屋里。
灯亮着,电脑屏幕很亮。他坐在桌前,手指放在键盘上,没动。程序又出错了,报错提示跳了三次,都是同一个内容:“请求参数为空”。
他把代码看了两遍,确认数据没问题,可就是跑不通。重启服务器时,风扇声音很大。他烦躁地合上电脑,走到窗边,点了一根烟。
窗外是窄巷子,挂着衣服。对面楼大多黑着,只有三楼有灯。他吸了一口烟,看着烟雾散开。
手机震了一下。他没回头。过了几秒,又震了一次。
他掐灭烟,拿起手机。是周正洋的朋友圈更新了一张照片。
照片里是一排火车票,整整齐齐摆着。配文写着:“七年,一百八十三次回家。”
陈峰看了几秒。他知道周正洋每周带女生回家吃饭,也知道他母亲一个人把他养大。但他没想到,周正洋会把车票留这么久。
烟灰掉在键盘缝里。他用螺丝刀轻轻挑出来。
重新打开电脑,还是报错界面。他看日志,发现数据发出去后变成了空值。他试了很多方法,都没用。他开始怀疑,这个小程序是不是不该做。
他靠在椅背上,看天花板。墙角有水渍。以前搬家,他总记各种麻烦事。现在他想帮别人避坑,自己先被代码难住了。
手机又震了一下。是邻里互助群的消息。
周正洋发了一句:“最近系统更新了吗?我这边税务申报模块也有点卡。”
陈峰愣了一下。他是国企会计,问这个有点奇怪。
陈峰回了一句:“不是系统问题,是我自己写的代码有问题。”
发完他就后悔了。他不想让人知道自己在挣扎。
周正洋秒回:“要不我帮你查查资料?反正我晚上也睡不着。”
陈峰盯着那句话,不知道回什么。他不想麻烦别人,但憋了三天的气没处发。最后他只回了一个字:“谢。”
第二天晚上,微信弹出一条文件传输消息。
是一个PDF文档,叫《轻量级API调试案例集》。里面有三个开源项目的链接。第三个是个房源匹配系统的demo,功能和他做的很像。
文档末尾写着:“你看下第三个,类似你之前说的那个自动匹配房源的功能。它的处理方式是先做空值拦截,再转JSON。你试试在请求前加一层判断。”
陈峰愣住。他不记得跟周正洋提过这个功能。
翻聊天记录,三个月前他在楼道抱怨过一句“想做个能自动推荐合适房子的小程序,可总被数据格式搞疯”。当时周正洋只是嗯了一声。
现在这人不仅记住了,还找了资料。
陈峰点开项目,看代码。果然,对方加了校验函数,字段为空就填默认值。他照着改了代码,重新运行。
页面刷新了一下。
房源列表出来了。
他心跳快了。再试两次,数据正常加载。详情页也能显示。
他截图发给周正洋,写了一句:“活了。”
对方立刻回了个笑脸,接着说:“我就说你能行。”
从那天起,周正洋每天发一条技术贴士。有时是简短说明,有时是比喻。语言简单,每次都帮到点上。
陈峰习惯睡前看微信。那些消息帮他解决了不少问题。他不再死磕,遇到卡点会先想想周正洋的建议。
第五天傍晚,他找到问题根源。是用户提交筛选条件时,没对“租金区间”做默认赋值,导致后端当成空对象。
他加上判断逻辑,重新部署。
程序第一次完整跑通。用户输入预算、区域、房型,系统自动匹配房源,还能收藏。
陈峰坐在椅子上,嘴角上扬。
他截图发给周正洋,还是那句:“活了。”
这次对方回得更快:“我说啥来着?”后面跟着三个鼓掌的表情。
陈峰关掉聊天窗口,打开新文档,写下标题:“v0.2版本优化方向”。
下面列了三条:
增加模糊搜索功能,支持“近地铁”“有阳台”这类口语化关键词
优化加载速度,减少用户等待时间
加入用户反馈入口,收集真实使用意见
写完保存,合上电脑。屋里安静下来,只有路由器亮着红光。他走到窗边,推开一点缝隙,夜风吹进来,带着烧烤味。
他想起白天看到沈莉在便利店门口喝无糖茶,拿着手账本。唐果也在群里发了动态,说她帮人想到了好点子,语气轻快。
原来不止他在动。
他回到桌前,打开手机备忘录,翻到底下一条记录:“不必急着证明什么。现在这样,也挺好。”
他删掉句号,加了一句:“但要是能做成,也不错。”
同一时间,周正洋坐在沙发上整理资料。茶几上摊着几份简历,都是母亲介绍的相亲对象。他用红笔圈出工作单位,放进不同的文件袋。
公文包里插着保温杯。他右手转着空气,左手把最新一份资料放进标着“下周”的文件夹。
手机屏幕亮了,是陈峰发来的截图。
他看了一眼,嘴角动了动,没保存,也没转发,把手机扣在茶几上。
窗外有电动车声,远处有小孩笑。他站起身,收好文件袋,关掉了客厅的灯。