越自信,Bug 越多
大家好,我是鱼皮。
标题是说给自己听的,最近,又因为我的自信,搞出了一个影响项目正常运行的 Bug。
事情是这样的,最近在搞一个新项目,之前基本都是我和另外一个前端朋友在开发。后来呢,我又拉了几位朋友加入进来,结果他们都反馈说代码在本地装不上依赖,导致运行不起来。
于是,有一位朋友就修改了项目中某一个依赖的版本号,然后依赖就安装成功了。结果运行项目时,出现了报错:试图从 undefined 未定义变量中获取属性。
代码如下:
// e.props 可能为 undefined
e.props.searchValue
这种错误其实是很低级的,有点类似 Java 中的 NPE(空指针异常)。于是估计这位朋友也是和我一样的心态,觉得这是个小问题,就直接加了个可选链操作符:
e?.props?.searchValue
这下代码不报错了,愉快提交,我也是想都没想就给他通过合并了,大伙都因为解决了问题,老开心了。
虽然后来我才发现是因为自己忘了提交 yarn.lock 文件到代码仓库中,导致他们下载的依赖版本号和我本地不同,所以才出现了我本地能运行,他们却运行不了的情况。
不过既然现在项目已经能跑了,就不管了吧,接着开心。
结果,今天我自己要使用系统时,才发现这个改过代码的功能怎么突然不能用了!?
排查后才发现,原来之前升级版本后,组件的函数参数发生了改变,通过之前的代码再也获取不到需要的属性值了。虽然通过加可选链操作符可以防止报错,但实际上,这行代码逻辑已经不对了,毫无意义。
对啊,我早该想到,为什么同样的代码,之前没因为 undefined 报错,升级后报错了呢?既然我们没改变,那变的肯定是第三方依赖啊!
所以还是太自信了,很多时候导致 Bug 产生的原因就是 “我以为的就是我以为的”。
最后总结两点:
- 能不升版本,就别升(代码能运行,就别去动他)。
- 升级版本后,一定要做充分的测试,不要盲目自信(代码能跑,不一定系统就可用)。
希望大家能记在心里,千万别小看它们。我现在发现,工作中往往越自信,就越打脸。
肝项目到现在才抽空写了篇文章,明天又得上班了,这小 Bug 值一个点赞么?
相关文章
- OpenCV图像处理
- 面向对象编程中的聚合与耦合
- 用 ABAP 调用 OCR 接口实现出租车发票扫描
- ubuntu 修改本地ip地址
- 如何使用pFuzz以多种方法验证Web应用程序防火墙的安全性
- 基于[php+微信小程序]实现“智能家居”电器设备控制—ESP32开发板的对接
- 单细胞亚群分层级命名并不是我原创
- 监控告警系统的多指标异常检测方案探索
- GoDaddy免费美国电话号码"Second Phone Number"申请体验
- CentOS 7.X 关闭SELinux
- 第五章-Spring Boot Docker
- 关于 Orbeon form PE 版本 Unauthorized 错误消息
- GoDaddy Email Marketing系列 - 创建邮件模板Campaign和测试EDM
- 关于 Orbeon form PE 版本使用 JavaScript Embedding API 的一个例子
- Linux安装telnet
- Orbeon form PE 版本 dmv-14 点击 save 按钮之后的执行逻辑
- 自动化运维Ansible之安装部署
- 从 ABAP Netweaver 到 ABAP Platform,我们一直在努力
- 如何用DevOps“牵引”转变一个产品线团队,实现数字化转型?
- MVVMLight学习笔记(一)—MVVMLight概述