前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >越自信,Bug 越多

越自信,Bug 越多

作者头像
程序员鱼皮
发布2022-01-05 08:30:14
3700
发布2022-01-05 08:30:14
举报
文章被收录于专栏:鱼皮客栈

大家好,我是鱼皮。

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

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

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

代码如下:

代码语言:javascript
复制
// e.props 可能为 undefined
e.props.searchValue

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

代码语言:javascript
复制
e?.props?.searchValue

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

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

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

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

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

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

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

最后总结两点:

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员鱼皮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档