查看原文
其他

越自信,Bug 越多

鱼皮 程序员鱼皮 2022-08-14

大家好,我是鱼皮。

标题是说给自己听的,最近,又因为我的自信,搞出了一个影响项目正常运行的 Bug。

事情是这样的,最近在搞一个新项目,之前基本都是我和另外一个前端朋友在开发。后来呢,我又拉了几位朋友加入进来,结果他们都反馈说代码在本地装不上依赖,导致运行不起来。

于是,有一位朋友就修改了项目中某一个依赖的版本号,然后依赖就安装成功了。结果运行项目时,出现了报错:试图从 undefined 未定义变量中获取属性。

代码如下:

// e.props 可能为 undefined
e.props.searchValue

这种错误其实是很低级的,有点类似 Java 中的 NPE(空指针异常)。于是估计这位朋友也是和我一样的心态,觉得这是个小问题,就直接加了个可选链操作符:

e?.props?.searchValue

这下代码不报错了,愉快提交,我也是想都没想就给他通过合并了,大伙都因为解决了问题,老开心了。

虽然后来我才发现是因为自己忘了提交 yarn.lock 文件到代码仓库中,导致他们下载的依赖版本号和我本地不同,所以才出现了我本地能运行,他们却运行不了的情况。

不过既然现在项目已经能跑了,就不管了吧,接着开心。

结果,今天我自己要使用系统时,才发现这个改过代码的功能怎么突然不能用了!?

排查后才发现,原来之前升级版本后,组件的函数参数发生了改变,通过之前的代码再也获取不到需要的属性值了。虽然通过加可选链操作符可以防止报错,但实际上,这行代码逻辑已经不对了,毫无意义。

对啊,我早该想到,为什么同样的代码,之前没因为 undefined 报错,升级后报错了呢?既然我们没改变,那变的肯定是第三方依赖啊!

所以还是太自信了,很多时候导致 Bug 产生的原因就是 “我以为的就是我以为的”。

最后总结两点:

  1. 能不升版本,就别升(代码能运行,就别去动他)。
  2. 升级版本后,一定要做充分的测试,不要盲目自信(代码能跑,不一定系统就可用)。

希望大家能记在心里,千万别小看它们。我现在发现,工作中往往越自信,就越打脸。

肝项目到现在才抽空写了篇文章,明天又得上班了,这小 Bug 值一个点赞么?

往期推荐

新年第一天,我就蚌埠住了!

结束了

几个很火的 Java 项目,开源!

微信发力了,一键部署网站后端!

3分钟,给女朋友做个云笔记!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存