编程中有遇到过被自己蠢哭的BUG吗?

新手上路,请多包涵

曾经因为少了个"}" 崩溃一下午..

阅读 6.2k
29 个回答

那应该是我第一次抄代码的时候(没错就是抄),那时候是还在学校里(认识我的朋友都知道,我以前学新闻文学的),理论上这个专业和代码八竿子打不着,由于那时候不了解什么是镜像源,不知道网络限制的问题,因此卡在了py环境调试的过程,卡了很久,如果没记错是两天。

为了纪念这个时刻,我还特意拍了两张照片
图片.png

图片.png

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

刚毕业哪会,有次因为有过单词写错了,查了两天~

其实很多编辑器都支持单词拼写检查了,比如 vscode 装一个 Code Spell Checker 插件,日常写不熟悉的单词也不太怕出差错了。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

有,而且还不少吧,都是经验和教训。

  1. event.stopPropagaion, 我印象里这个单词我老是有种执念,会记成其他拼写,拼成了event.stopProgragation...,也不知道咋想的。
  2. git pull代码后有冲突,解决冲突,但是没解决完就提交了。导致代码里一堆两个版本的代码留存,各种git的对比提示符,结果就是直接报错崩盘。
  3. 最搞笑的,文件名小写开头,比如timeline, 引入时用的大写Timeline。在Windows机器上,是能自动纠正文件大小写错误的,也能生效。但是打包的时候,老是提示找不到这个文件,打包失败。一直找问题找不到,发现代码没有任何问题。最后发现大小写,蠢哭了..
已参与 「极客观点」 ,欢迎正在阅读的你也加入。

比如如下python代码,将__init__,写成了__int__,半天找不出来

class test:
   def __int__(self):
        pass
已参与 「极客观点」 ,欢迎正在阅读的你也加入。

调试了半天,发现是未给缓存目录权限,不可写...


已参与 「极客观点」 ,欢迎正在阅读的你也加入。

为了回答你这个问题,我特地找来了我曾经被自己蠢哭后发的朋友圈哈哈。圈内开发好友也都很有共鸣:

image.png

当年开发经验少的时候,经常写一些语法错误、类型错误等的bug,难免会因为一个bug找上大半天,最后发现是自己蠢的。
但随着开发经验不断增加,另外IDE工具的提示功能不断完备(比如前端的 eslint、TS、prettier、自动补全等),越来越少会犯比较低级的错误。
所以也有说,工欲善其事,必先利其器。在开发前,准备一个让自己用起来无比顺手、功能无比强大的工具,也是很有必要的。好用的工具加上自己踩过坑的经验,同样的bug找起来就会很快啦。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

非常多的情况了,有时候因为自己写错了一个符号或者字母,而找不出问题所在,所以啊,学好英语还是很重要的。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

新手上路,请多包涵

有次调试程序 ,改了半天发现没效果,log输出一下也没有,仔细一找发现是打开的测试地址,不是本地地址的。。。。。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。

就这个代码(javascript),蠢哭了,调试了半天把浏览器和vscode都重启了一遍。最后发现是没写return。

伪代码,提供参考

// 错误❌
function run(a, b) {
  if (a>b) b
  if (b>a) a
}
// 正确
function run(a, b) {
  if (a>b) return b
  if (b>a) return a
}

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

题主少个}是怎么编译通过的,哈哈

低级bug对于java来说最怕的就是空指针了吧

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

value写成valeu 这是经常发生的...
还有,经常改错文件...

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

谁都有迷瞪的时候,例如某次自信的拼写了一个单词:

represent    // 此处当时拼写成represcent

找了半个多钟头,当时涉及到的语法,判断条件,标点符号全检查了,最后大批量注释代码,逐行比对才找出来问题。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

单词拼写错误是最坑的,前后变量不一至导致程序运行异常,非常难发现

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

太多了。

分享几个点吧:

  1. 一定要用等宽字体
  2. 能开的验证都开了,包括英文单词
  3. 勤构建、勤测试、勤提交,上厕所前顺手点个 build
  4. 尽量在开发环境测试
  5. 实在不行就切块二分法
已参与 「极客观点」 ,欢迎正在阅读的你也加入。

写bug很重要!

第一重境界:昨夜西风凋碧树。独上高楼,望尽天涯路;

第二重境界:衣带渐宽终不悔,为伊消得人憔悴;

第三重境界:众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

远程连接window服务器机房,网络有点慢,我计划禁用网卡,再启用,右键网络连接,选择禁用,之后断开了。我再次想要登录,结果。。。。。。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

帮别人改Vue代码,我习惯把生命周期写在 methods 前边,然后死活不执行。
折腾了2个小时,吃了一顿饭回来往下滑了一点距离,发现他把他的 mounted 写在了最后面……

然后第二天我就强调了一遍 组件/实例的选项的顺序

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

刚入行初期常见错误有:

  • 输入错误.

    • 输出不是自己预想的那样, 查了半天是因为输入的问题错误.
    • 读取的文件没有权限,读不到数据.
  • 调用失败错误.

    • 单词拼写错误,调用半天没有生效.
    • 函数名重复被覆盖,原来的函数失效.
已参与 「极客观点」 ,欢迎正在阅读的你也加入。
新手上路,请多包涵

测试时传入值写死了,怎么查都不对,后来测试的值都要标记一下,以防再犯同样的错误

加个TODO 加个注释都行

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

最开始学习编程的时候,各种低级错误,
没办法,成长是需要代价的。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

最常遇到的就是单词拼错,前后变量差一个字母,或者标点写错,

最危险的莫过于变量赋值失败,导致出现 rm -rf / 的情况。


已参与 「极客观点」 ,欢迎正在阅读的你也加入。

有,还是那种特别特别蠢,当时检查出来,都想把自己给打一顿。
在数据库建立新列时,手贱多敲了一个空格,把各处代码都检查了一遍,一直没发现问题,最后找到的时候,真的是人都麻了。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

Java 中, 因为 1000 != 1000 一个 Integer 一个是 int

包装类和 int 比较,只有在 128 以下是相等的, 搞一下午

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

字母写错和缺少变量很常见啊,有时候就是容易疏忽。
比方说Vue中的destroy写成了destory,偏偏后面这个单词也是存在的……
前几天写Vue的时候,子组件忘记写name出现了报错……


已参与 「极客观点」 ,欢迎正在阅读的你也加入。

记得刚开始做前端开发的时候把反引号``搞成单引号'',结果排查了一天,后来还是被同事发现的,蠢哭了。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

为什么我明明改了这个文件就是不生效,一度怀疑是vscode出bug了,没有保存上我写的东西。重启vscode、重启电脑还是不行,后来才发现,哦,原来是我改错文件了。。。。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

只要是程序员,都会有过吧,多到记不清了,很多是单词写错,大小写问题之类的,以前的编辑器还没有什么esLint之类的各种友好提示,找起来真要命

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

之前vueangualr2个项目跑,老是吧v-if写成ng-if.半天找不到问题...

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

犹记得大学那会C语言上机。老师帮班里一位同学调试程序,半个多小时多去了,还是无法运行。结果发现主函数竟然是mian

已参与 「极客观点」 ,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
极客观点
子站问答
访问
宣传栏