你今天又写了什么bug? --持续更新中,更新到不写代码的那天

前两天有个大学同学在微信上敲我,劈头一句“又在忙着写bug呢?”,不禁失笑,无以反驳。嗯,不管多厉害的coder,都很难说写的程序0 Bug。今天看公众号还爆了一个ios上元素嵌套过多引起的苹果手机重启的问题。入行也有一年多了,来回顾下自己都写了哪些Bug出来,引以为戒吧。

莫名消失的底部操作栏

这是在上家公司干的了。在前人基础上改一个页,底部会新加一个悬浮的操作栏。这个页用了一个x-pull的向下滑动自动刷新框架,底部栏就正常写悬浮fixed,chrome上手机模式是好的,但有的手机上底部栏消失了。查了一下,发现是框架的锅。它改了全局的transform样式,有些浏览器上底部栏计算出来的结果就是不显示。解决方法是在框架每次改完全局样式后,再手动把底部栏的样式改回来。

经验:用框架要小心副作用;一定要真机上看效果

后台提交表单后返回结果屡屡报错

这也是在上家公司了。做了一个保险后台给投研部的人用,有一块是试算保费,根据所填的表单调第三方接口,返回一个试算的结果。前提是第三方接口文档过时且不完整。快完工的时候发现,表单内容是根据填写的每一项变化的。每次新填一个,会返回告诉你变了哪些项。根据这个修改完后,投研部的人反映,提交表单后经常出错。

后来跑去盯着看他们怎么操作的,找到了原因。员工操作的时候,因为返回试算结果和表单变化的接口都比较慢,他点得又很快,在试算了一次后,迅速点了几下选项又去提交,就可能表单变化的接口还没返回,表单还没渲染成正确的结果,就被提交了。在用正确的表单模板验证每项的时候,就会出错。

后来给整个表单都加了Loading,接口不返回则禁止操作。但还是时不时出现报错。貌似后台接口本身也有点问题,好像是因为没数据还是什么来着,额,总之不是前端的锅了。也可能还是前端的锅,我后来离职了,不太清楚后续。。。

经验:有需要就加Loading;需求变了再从头想一遍逻辑会不会出现漏洞

定时任务从每天跑三次变成了每分钟跑一次

这个绝对是本人目前写过最大的bug了。而且是线上的。。。

话说我今年换了一家新公司,不但要写页面还要写nodejs,换言之,写bug的范围也扩大到了后端。写了一个视频查重的定时任务,上线了一切ok。某日上午,组长让我把定时任务从每天跑一次改成每天跑三次,我在改的时候,分钟的位置上的*没有改过来(想当然了),因为这个改动很小,又是定时任务,没放测试就着其他的改动直接上线了,结果可想而知-_-||。。。

经验:仔细读文档绝不想当然;哪怕是定时任务也一定要在测试或者本地环境下调到相近时间试一次

脏数据的诞生

有个弹窗,弹窗里让你选择A,B两项,分别对应数据库里的0,1。页面和接口都是我写。看测试库的时候,发现多了一些是-1(默认值)的脏数据。马上反应过来了,忘了做校验!哎,产品怎么不在原型里提一句呢。。。

后来在前端加了个逻辑,不选择不能提交。嗯,自己同时写页面和接口的话更了解情况,一些重复校验可以不必做了。

经验:提交表单要校验!要校验!要校验!


待续,只要还做程序员,这篇文章大概就不会断更。

猜你喜欢

转载自blog.csdn.net/github_36487770/article/details/82745679