今天晚上十点十四分,师傅让我先走我没走,我就想留在公司看看他还有什么活要干。结果他八点就走了。留我一个在工位上对着昨晚跑不通的那个接口发呆。
这个项目是给内部系统做个订单导出的功能,其实逻辑不难,就是查数据库然后生成Excel,就是我连的是他们测试库,里面的数据都是假数据,假数据又不是完整的假,订单状态那里什么值都有,有的甚至是个空字符串。我昨天写的判断是用状态码去匹配,跑了一下一直报错,说什么状态机转换不合法。
我一开始以为是数据库里脏数据的问题,找了半天,把空字符串的那个都过滤掉了,还是不行。然后我想起来我之前在表里加了一个字段是存操作日志的,会不会是它?不会,日志是日志,不可能影响状态机的……吧?
我试了好多办法,改配置文件、清理缓存、在前后端加了一堆打印……这楼晚上厕所灯是声控的,我路过的时候跺了一下脚,灯全亮了,给我吓一跳。
一直报错到快十一点,我终于受不了了,把那一大坨报错原封不动贴给了 AI。它一眼就看出来了,说不是你现在的代码问题,是你传进去的订单号是不存在的,你从列表页点进详情然后直接调保存接口,这时候订单状态还没初始化,状态机根本不认它。
我看了一眼,还真是的。昨天师傅给我的那个测试账号进去默认是订单列表,不是订单详情页。我一直拿列表页的 orderId 在调详情接口,那它在状态机里当然没有初始状态,肯定得报转换不合法啊。
操。我调了一整天的东西,居然就是因为我没先进详情页拿那个真正的ID。然后我按照它说的,在调接口之前先走一遍建单的接口,把那个返回的 ID 传进去,在试了一下,居然真的可以了!一整天才完整的跑起来,那一刻我真的想站起来鼓掌,但是没有,因为就我一个人。
说真的,我以前总觉得 AI 只能帮我写点小函数,或者改点样式,这次我是真的服了。它能直接看懂你的项目结构然后告诉你错在哪儿。这感觉就像一个大佬坐你旁边,你问他什么他都能接上,而且嘴还快。。我记得以前在学校写代码,遇到这种报错只能自己一行一行看,或者问学长,学长要是睡了就只能等明天。现在直接问它,效率真的翻了一倍不止,而且我学会了一个新东西:原来测试环境的假数据也是要讲逻辑的,不是随便造。
然后我把它改好的那段代码提交上去了,commit message 写的 fix: 修复订单详情页状态机报错问题。我师傅半夜十二点给我发了个消息说怎么还在公司,我说搞完了,他回了个:嗯。就没了。我怀疑他在家打游戏打到一半看到的我消息。
明天又要早点起来,组长说明天下午要对这个功能走一遍流程……我要把今天踩的坑记在备忘录里,省的明天又说不出哪有问题。实习这些天,每天下班回去都累的快散架了,但是又觉得比以前在学校闲待着充实多了。这种充实是真的充实,像把饭吃饱了的那种。
好了不写了,外卖到了(我在公司点的麻辣烫)。
得睡觉了。明天还得早点去,师傅讨厌别人迟到。实习真不是人干的事,但是真的能学到好多东西!