一提交代码就爆大雷,三个历史大坑全让我踩了
背景
这几天连续加班,我每次提交代码每次都会爆大雷。
我靠,代码给我写好的啊,怎么全是坑 😮💨
我一提交代码,就让所有的历史问题都暴露出来了。还是怪我测试不够仔细,真的大爆雷。
大雷一:新增商品同步 ES 居然要 5 分钟
新增商品不能及时同步??同步到 ES 需要 5 分钟??
DANGER
我靠,你是自己在服务端设置了一个定时脚本全量重建 ES 索引啊,谁教你这么写的???
大雷二:字段命名完全是反人类
商品列表的字段有 coverUrl,和一个 mediaUrls(对象数组,下面有一个 picUrl)。
正常人应该会觉得 coverUrl 是封面图吧?
WARNING
错误的,mediaUrls[0].picUrl 才是封面图 🤡
还有,前端会在商品右上角打上标签,有两个字段:tagList(对象数组)和 tagName,上面只能显示一个 tag,应该用 tagName 吧?
WARNING
又是错误的,tagList[0].name 才是前端真正取的字段 🤡
666,到底谁设计的字段,我服了。
大雷三:同一个后端,Token 过期一个返回 401 一个返回 500
我们产品有两个版本,用的同一个后端,经过的是同一个网关。
但是有一个版本 Token 过期会返回 401,另外一个版本会返回 500。
我曹威,怎么回事???
排查过程
一开始我只关注一个版本,加了一个 else 条件,把 500 改为 401。
但是呢,小程序和第一个版本直接 Token 过期之后一直提示 Token 过期。
一开始认为是前端传的 Token 格式不对,然后发现:
DANGER
这个第二个版本是从第一个版本迁移过来的,但是那个迁移的人打算跑路了,然后把第二个版本的 url 全部放进白名单了,压根就没有走第一个版本的校验!
所以一个是 401,一个是 500。
幸好白名单是放在 Nacos 上的,要不然一个个试 url 会累死我的。
总结
TIP
一提交代码就让所有的历史问题都暴露出来了,还是怪我测试不够仔细,真的大爆雷 💥
这几个雷都是前人留下的历史包袱,踩一遍记录一遍,下次提交前多测几遍。
