开发中因为外部因素导致的奇奇怪怪的bug

783 阅读2分钟
让你明明白白学知识,有代码,有讲解,抄的走,学的会!

最近的有在使用富文本开发一些需求,会发现在输入的时候,会帮我们做一些默认的操作,最开始以为是富文本监听input 事件,需要将节流的时间设置长一点

然后在做 code review 的时候,同事建议使用 chrome 的无痕模式进行测试, 果然,就正常了

我正在做输入, 可能我打字慢,然后前面的 ds 就会被默认插入到富文本中, dasd还在等待悬停状态

这是因为 chrome 插件 “划词翻译” 导致的

出现问题不可怕,可怕的是,你不确定问题产生的原因是哪几种

  • 开发环境导致的, 比如 过多的 chrome 插件,插件会静默收集用户输入的信息,对当前的页面有干扰
  • 开发使用的方式不对,比如: wangEditor 富文本使用方式不对; 比如 iview 文件上传的使用方式不对
  • 网络原因,网络波动,造成偶发现象的bug
  • 语法错误,可以归结为上面的第二点 (语法错误有很多)
    • 前后端接口数据格式不一致
    • 请求方式错误
    • post请求数据的 content-type 不一致
    • 接口授权过期
    • ajax错误未捕获
    • 后台的非 500错误,未做容错处理
    • null 或者 undefined 使用 数组(map, forEach),字符串(split, join)的方法
    • 深浅拷贝数据错误
    • 死循环
    • 未深入理解某个框架数据更新机制 比如 this.$nextTick使用场景, 导致当前效果总是旧数据
    • ... 这是整个开发中,最容易出错,也是高频的

所以,我一般的排查思路是

  1. 无痕模式
  2. 检查语法
  3. 查看网络
每天踩一坑,坑坑不一样 😁😁😁