什么是 Bug?
在编程时,你几乎不可能第一次就做对,而编程的过程就是不停的制造问题和解决问题,最终找到那个最优解。这里制造和解决的问题,在编程界被称为 Bug。
在我看来,编程的过程就是遇到问题,分析问题,想到问题的方方面面,编码的过程,也要做到如履薄冰,只有这样仿佛才能把自己的作品交出去。这种做法其实对我做事影响也很大。
一直以来,我都以为这么多年的编程生涯,对我最大的影响无非几点:
- 做事情比较谨慎,考虑问题比较全面,尽量在行动前减少犯错误的机会。
- 遇事不慌,先找突破口,从一个点再到面,最终解决掉这件事。
不过今天在拜读了李如一先生的一篇会员通讯,其中一句话对我很有启发:
「把任何领域的问题和毛病视为某种可修整的 Bug。」
因为一直以来有个问题困扰我,就是跟别人探讨问题的时候,总觉得别人的问题不是问题,都有解决办法。有时候我能帮人找到解决办法,但是有时候我自己也找不到办法,但是心里总是认为它有解决办法的。
今天读到这句话,总算知道问题在哪里了,10几年的编程生涯,确实给了我一种问题总能解决的判断,因为有 Bug 我就解决 Bug,解决了再有新 Bug,我再解决,就这样循环往复,多大的项目都能做出来。
之所以我不去考虑为什么会有 Bug 这个问题,是因为「互联网是不确定的」,互联网领域从来没有人敢说 100%,见过最多的也就是 99999.99% 这样的描述,为什么?因为所有的业务,无论多么实锤,只要经过了网络处理,就变得充满不确定性,而这种不确定性也正是所有互联网从业人员治理解决的问题。
细细想来,我们的人生也是如此,十年前我觉得我的人生不确定,十年后依然觉得自己的人生不确定,这种不确定性一直存在且长期如此,那我们如何生活呢?这就回到了开头我提出的观点:
「我们的人生就是不停的在制造 Bug 和 修复 Bug 之间度过」。
当然,没人愿意制造问题,我在编程的时候,为了少点 Bug,我有一套方法,其中简单有几点可以说一下:
- 写任何代码都做好严密的逻辑,做到方方面面都考虑到。
- 做很多测试,确保没问题的时候再交付。
可我们在人生中遇到的问题,是没有测试这一环节的,也就是「人生不能试错」,这种情况下,我觉得唯一有经验的就剩下做事考虑缜密一些,减少犯错的可能性。但是人生如果真的像编程这样去对待,是不是失去很多乐趣呢?