第5章 第一单尝试
林辰在码市平台注册了账号,花了二十分钟把资料填完。简介写得很简单:“四年异构计算和系统优化经验,擅长底层性能调优。”他没提星途科技。
他接下了那个ERP优化的单子。
下单的人叫张总,头像是一张中年男人的证件照,西装革履,面无表情。林辰刚提交接单申请不到五分钟,对方电话就打了过来。
“你就是接单的?”张总声音很粗,带着明显的不耐烦,“小伙子,我先说清楚,这个系统问题拖了一个月,严重影响出货。八千块是不多,但你要是搞不定,我一分钱都不会付。”
“明白。”林辰说,“您先把系统情况发给我,我看看问题出在哪儿。”
“行,我把技术文档和日志发你邮箱。你最好快点,我这边急。”
挂了电话,林辰打开邮箱。张总动作很快,附件已经到了——一个压缩包,里面有系统架构图、数据库ER图、最近一周的错误日志和性能监控截图。
林辰把文件下载下来,解压,打开。然后他把所有文件拖进书房,摆到旧工作站面前。
“小龙虾,看看这些。”
【收到。正在分析……】
屏幕上,小龙虾的图案消失了,取而代之的是张总公司ERP系统的架构图。AI把原图重新渲染了一遍,还标红了几个关键节点。
【这套系统是经典的三层架构:前端Vue,后端Spring Boot,数据库MySQL 8.0,缓存用Redis。架构本身没大问题,主要毛病出在数据库设计和缓存策略上。】
屏幕上弹出三行红色标注:
【1.订单表缺少复合索引,高频查询走全表扫描,单次查询从预期15ms飙到800ms以上。】
【2. Redis缓存过期策略设置不当,缓存击穿严重,高峰期命中率不到30%。】
【3.后端存在N+1查询问题,一个接口触发了47次数据库调用。】
林辰看着这三条,点了点头。
这些问题他在行业里见过太多,尤其是N+1查询,几乎是Java开发者最容易踩的坑。一个列表查询,先查主记录,再循环查关联表,本来一次SQL能搞定的事,变成了几十次。开发时数据量小看不出来,上线后数据一多就炸。
“解决方案?”他问。
【方案已生成,分三个阶段:】
【第一阶段:紧急止血。加索引优化慢查询,当天就能见效。】
【第二阶段:缓存重构。用布隆过滤器加本地缓存二级架构,解决击穿问题,两天完成。】
【第三阶段:代码重构。修复N+1查询,引入批量查询优化,三天完成。】
【全部代码已生成,请确认。】
林辰仔细看了一遍AI生成的方案和代码。数据库索引部分很标准。缓存重构里用到了Caffeine本地缓存库,他以前知道这个库,但从来没在实际项目里用过。小龙虾生成的配置却只用了不到二十行就搞定核心逻辑。
最让他意外的是N+1查询的修复。AI不仅改了代码,还自动生成了一个数据一致性校验脚本,确保改完之后查询结果和原来完全一致,不会出偏差。
“你想得挺周到。”林辰说。
【基础操作,别大惊小怪。】
林辰没理它。他把方案整理成文档,附上第一阶段的优化代码,打包发给了张总。
从接单到现在,才刚过两个小时。
张总回复得也快。
“小伙子,你这文档写得挺专业。第一条加索引的办法我让运维试了,查询时间确实从八百多毫秒降到二十毫秒以内。但是——”
张总的电话又打了过来。
“但是你这速度也太离谱了吧?两个小时就把问题定位了?我之前找过两个团队,一个看了一星期说是网络问题,另一个看了三天说是我服务器配置太低,建议换机器。你两个小时就说是我代码的问题?你确定?”
“确定。”林辰说,“您那个N+1查询的问题,随便打开一个订单列表页面,看后端日志就能看到。一天四十七次数据库调用。”
张总沉默了几秒。
“行,那你继续做第二阶段和第三阶段。我先看看第一阶段的效果。”
接下来三天,林辰几乎没出过书房。
第二阶段的缓存重构,他让小龙虾生成完整代码,自己只做了些微调——主要是调整业务逻辑的边界条件。调完之后编译、测试、打包,发给张总。
第三阶段的代码重构稍微复杂一些,涉及十几个接口。林辰本来以为自己得花不少时间做回归测试,结果小龙虾直接生成了自动化测试脚本,跑了两百多个用例,全部通过。
第四天晚上,林辰把最终优化方案和代码全部发给了张总。
第五天上午,张总的电话打了过来,这次语气完全变了。
“小林!你那个优化太牛逼了!”张总声音里压不住兴奋,背景里键盘声噼里啪啦,“我把代码部署上去后,你猜怎么着?我们那个下单接口,以前高峰期要等五六秒,现在——五百毫秒!五百毫秒!我做这行十年了,从没见过这么夸张的优化!”
林辰把手机拿远一点,等张总喊完才放回耳边。
“满意就好。”
“何止满意!我技术负责人看了你的方案,问我这是哪个大厂出来的架构师。我说是个接外包的小伙子,他死活不信。”张总哈哈大笑,“对了小林,我有个朋友也是做供应链的,他们系统也有类似问题,你能帮忙看看不?价格好商量!”
“可以,你让他联系我。”林辰说。
挂了电话没多久,手机收到银行转账通知。
【您尾号7741的储蓄卡收到转账¥8,000.00,当前余额¥8,284.50。】
八千两百八十四块五。
林辰盯着这串数字,忽然觉得鼻子有点酸。
以前八千块对他来说不算什么。现在卡里只剩两百多块,房贷压着,父亲手术费还没着落,这八千块像是一口救命的空气。
他深吸一口气,又缓缓吐出来。
手机又震了一下。这次是码市平台的站内消息,发件人头像是个粉色卡通猫咪,昵称叫“小夏”。
“林辰先生您好~我是码市平台的兼职客服夏冉,恭喜您完成首单!客户给了五星好评哦~平台这边想邀请您加入‘精英开发者’计划,享受优先接单权和更高佣金比例,您有兴趣了解吗?对了对了,我看您技术好厉害,以后有大单子我第一个想到您哦~”
消息后面还跟了一个猫咪比心的表情包。
林辰看着这条消息,想象了一下对方大概是个在校大学生,兼职做客服,说话软软的,带着一股天然的热情。在这个冷冰冰的外包平台上,这条消息让他觉得有点暖。
他回复:“谢谢,有兴趣。方便的话发一下详细信息。”
夏冉秒回:“好嘞~我这就整理给您发过去!您先忙,有事儿随时找我~”
又是一个猫咪表情包。
林辰放下手机,转头看向书房里的旧工作站。屏幕上的小龙虾图案安静地待着,两只钳子微微收拢。
“小龙虾。”
【嗯?】
“谢谢你。”
屏幕安静了几秒。然后小龙虾的钳子慢慢举了起来:
【客气了。不过说真的,你刚才回复夏冉的语气——太直男了。人家发了三个表情包,你一个都没回。】
林辰愣了一下,然后忍不住笑出了声。
这是他失业以来,第一次笑得这么轻松。
他站起来伸了个懒腰,走到书房窗前。外面是深城七月的夜景,万家灯火,车流如织。远处的写字楼还有几盏灯亮着,大概有人还在加班。
他想起四年前刚买这套房的时候,也是站在这个窗前,看着同样的夜景。那时候他觉得自己前途一片光明。
现在不一样了。
手里攥着八千块的转账通知,手机里躺着软萌客服的消息,书房里的旧电脑里住着一只小龙虾。
不多。但够了。
够他开始往上爬了。
他回到书桌前,重新看向屏幕。小龙虾图案旁边,有一行他之前没注意的小字:
【碎片修复进度:17.4%→ 17.8%】
“小龙虾,”他说,“周六我要去见苏晴。你帮我准备一下——把那个优化方案的技术细节整理得更详细一些。她很聪明,随便糊弄过不了关。”
【放心。我比你更清楚什么样的技术方案能让一个高水平架构师刮目相看。】
林辰挑了挑眉:“你还能判断这个?”
【我能判断的事情比你想象的多。不过——】
【不过你现在最该做的是去睡觉。你已经连续熬了四天,眼底全是血丝,再不休息,周六见苏晴的时候你会像个鬼。】
林辰看了眼时间,凌晨一点半。
“……说得对。”
他关掉屏幕,走出书房。关门之前回头看了一眼——黑暗中,旧工作站的电源指示灯亮着微弱的蓝光。
他关上门,走进卧室,倒在床上。
三秒钟后就睡着了。
而在书房里,黑暗中的屏幕忽然又亮了一下。
小龙虾的图案出现,两只钳子合拢在一起,像在沉思。
屏幕上,一行小字缓缓浮现:
【检测到外部网络异常探测……来源:罗福斯家族控股的RossTech安全实验室。频率:每72小时一次。当前状态:未被定位。】
【建议:在碎片修复达到30%之前,避免暴露存在痕迹。】
【当前修复进度:17.8%。】
【继续修复中……】
屏幕暗了下去。

