百科问答小站 logo
百科问答小站 font logo



老程序员解 bug 有哪些通用套路? 第1页

  

user avatar    网友的相关建议: 
      

从业十年。其实真正优秀的老程序员,因为太过熟悉了,在程序架构上都设计的非常漂亮,几乎没什么bug。在良好成熟的架构下,有bug都能快速排查出来解决。但是很多老板都不察觉他们的价值。反而是很多新手程序员,写了一堆bug,天天加班在那里修,老板反而觉的他们很努力很有价值。


user avatar   Ivony 网友的相关建议: 
      

其实没什么特别的,有一点比较特别的可能是在做任何改动之前,我会先想清楚两件事情:

1、改这个可能得到哪些结果?

2、这些结果说明什么问题?

然后,我会把代码改回去,除非结果证明这个改动是有益的。




其实这显然是常识,而大部分的程序员非常的奇怪,他们总是这样思考问题:

我为什么不改改这里呢?


你为什么不去问问神奇的海螺呢?




所以,找出Bug的方法步骤很简单:

1、找出最有可能出现问题的模块或者代码。

2、设计一个实验证明这个模块有问题或者没问题。

3、进行这个实验并记录结果。

4、根据实验结果进一步排查问题。


而很多程序员都有一种蜜汁自信,他们认为2-4步骤是对他丰富经验和敏锐直觉的侮辱,他们总是能直接发现问题的所在并且直接进行修复,然后寄希望于奇迹发生。

所以,你为什么不去买注彩票呢?


==================================================

一个常见的场景是这样的:

这边有一个很麻烦的Bug请求援助。

好,那么目前的情况是怎样的?

首先测试提出了这样一个Bug,所以我怀疑是A模块的问题,所以我把A模块的这个改了一下。

嗯,改了之后呢?

改了之后问题好像有所缓解,又出现了B的现象,所以我又把C模块改了一下。

等一下,你在改A模块的时候,有没有考虑过出现B的现象?

我怎么可能提前知道会出现什么现象?

OK,你不知道,这没什么关系。那么你在修改A模块的时候,有没有期望这个改动会带来什么结果?

期望结果就是问题解决啊,,,,,你怎么把问题搞这么复杂,你看,现在问题已经解决的差不多了,我们只要把C改一下,嗯……

May God bless you……





大概就是这样……




  

相关话题

  如果编程语言有性别?Java、C++、C、C#是男是女?是GAY还是LES? 
  为什么NodeJS领域那么多框架,而Java则可以SpringBoot一家独大? 
  如何理解 Golang 中“不要通过共享内存来通信,而应该通过通信来共享内存”? 
  程序出现bug是必然出现的情况还是程序猿水平有限导致的? 
  你在公司项目里面看到过哪些操蛋的代码? 
  伊利诺伊理工大学在线硕士人工智能专业,出来公司吃香吗? 
  算法工程师如何应对做算法策略的不确定性;比如没效果,这时绩效怎么保证? 
  如何看待 2019 年 JAVA 开发就业减少现象? 
  冯大辉(Fenng)的编程能力到底如何? 
  湾区大厂听起来那么轻松,会不会把人待废? 

前一个讨论
什么样的老板不值得下属去追随?
下一个讨论
古代的状元文人放在今天也是能干大事的人吗?为何寒窗读书后就能帮治国了,和今天书呆子理论派叫法完全不同?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利