软件开发思想-1-斩草除根

典故

古语有云:“斩草要除根”,这来自一个典故。往年,郑庄公请求与陈国讲和,陈桓公不答应。五父劝谏说:“亲近仁义而和邻国友好,这是国家可宝贵的措施,您还是答应郑国的请求吧!” 陈侯说:“宋国和卫国才是真正的祸患,郑国能做什么?” 于是就没有答应。君子说:“善不可丢失,恶不可滋长,这说的就是陈桓公吧!滋长了恶而不悔改,马上就得自取祸害。纵是挽救,何能办得到!《商书》说:‘恶的蔓延,如同遍地大火,不可以靠拢,难道还能扑灭?’周任有话说:‘治理国和家的人,见到恶,就要像农夫急于除杂草一样,锄掉它聚积起来肥田,挖掉它的老根,不要使它再生长,那么善的事物就能发展了。’”

所以,古代皇帝惩罚一个罪大恶极的人,会选择诛其九族,这样不会遗留祸害。

唐朝白居易名诗:离离原上草,一岁一枯荣。野火烧不尽,春风吹又生。说得就是这个道理。

 

软件开发

我们知道,一个系统,没有办法做到bug free。每个系统都有bug,或大或小,或明显或隐藏得很深。我们做bug修复的时候,关注点不是表象,因为一些时候,我们会陷入误区:只要呈现出来的问题不再被观测得到,那问题就是被修复。

或许大家听过Heisenbug这个词,以下是维基百科的摘录:

在程序设计术语中,海森堡bug(英语:heisenbug)是指在尝试研究它时似乎会消失或者改变行为的bug(程序错误)。该词汇是物理学家维尔纳·海森堡名字的双关语,他最先断言了量子力学的观察者效应——观察系统的行为不可避免地将改变其状态。电子学中的传统用语则是探针效应,指连接一个测试探针到设备将改变其行为。

类似的词语有玻尔bug(bohrbug)、曼德博bug(mandelbug)和薛定谔bug(schrödinbug),它们偶尔被用于指代其他类型的非寻常软件缺陷,但通常以开玩笑的心态使用。

很多时候,我们对bug进行排查、重现,这个bug就是不出现,或者更糟糕的是:随机出现。

所以,我们不应该只修复症状,而应该找到根源问题,并且修复之。

 

爆栈服务

是否想技术水平快速提升?是否希望快速成为公司的技术骨干?

核心价值
  • 把我这10多年来所学到的知识、总结的经验、吸取的教训分享出来
  • 针对不同的学生量身定制规划学习成长路线、1对1个人指导、代码审阅等
  • 解答各种技术问题
  • 为公司提供技术解决方案

请查看本站右边的信息联系我。

发表评论