duuliy

关于两个bug的反思

2024-6-10

bug 1

背景:全量js改造ts期间
描述: 假设有文件m.js, A修改成了m.ts并且先合并了master,B修改了m.js后合并master,git不会冲突且不需commit可push代码,造成发布灰度时才会报错m.ts的类型问题.
解决办法:特殊期间,即使没有冲突,也需要手动yarn tsc 且写入开发流程。

bug 2

背景:sentry报错xx问题,同事请假了,帮忙优化代码。
描述:固定思维,直接去看xx的相关问题了,没注意外层相关useEffect内部还有map监听,当map为引用类型时,引用类型在本hooks里面声明(在reconciler时会被当成新的引用),导致循环引用。
解决办法:放在hooks外部定义常量。
疑问:为什么代码审核和自测没识别问题? 1.一般提交代码前会再检查一次sourcetree,审核时看的gitlab,这两种情况都只有改动当前行的代码,没有问题代码。2.导致的bug是非必现问题,属于偶现问题,常规自测没复现(固定思维下此类简单问题走免测流程)。
总结:在修改别人代码时,自己要多注意上下文,哪怕改动属于比较简单的,也可以再加一道保险,让电话此同事一起确认下有没问题,且在代码不熟悉的情况下不可走免测。