薛定谔的猫/海森bug
之前说过薛定谔的猫,在量子物理学中,这种状态叫纠缠态。在开发过程中,这叫做:“海森bug”,是开发过程中的不肯定性,具体参考这里:软件开发思想-1-斩草除根
不确定性雪糕筒
说起不肯定性,在开发过程中,我们对开发项目的估计,最开始的时候,是与实际情况偏离得最大的,随着开发的进度不断推进,这个不肯定性会不断缩小,到开发的末期,这个估计会和实际情况非常接近,这个过程,我们用2条曲线表示(正负误差),就是一个雪糕筒的形状,这就是不确定性雪糕筒(Cone of uncertainty)。
最不可能的可能
OCaml的主开发人员在给VIP客户做技术支持的时候发现一个诡异的bug,第一反应是CPU有问题,但是客户不配合验证不了他的想法,1年之后,Intel终于确认了其CPU有问题:http://gallium.inria.fr/blog/intel-skylake-bug/
一般来说,我们给系统排错,一般是这样的顺序:
-
首先是看某个具体的功能,可能性是95%
-
再看模块中各种类型/函数的调用,可能性是50%;
-
然后看整个系统的数据流转、API/服务调用关系等等,可能性是25%,
-
之后才会考虑可能是第三方的组件/服务的问题,可能性是10%
-
接着会考虑是系统的DLL/配置问题,可能是1%
-
如果上述都不是,我们才会考虑是编译器/解释器的问题,可能性是0.1%
-
如果还没有发现问题,我们才可能考虑是硬件问题,譬如磁盘、内存等,可能性是0.01%
-
如果这还没有发现问题,那我们只能怀疑CPU,可能性是0.001%
所以,你会发现,不管可能性有多低,排除了所有其他可能性,剩下了的,不管看起来多荒谬、多不可能,那也会是答案。
爆栈之旅
是否想技术水平快速提升?是否希望快速成为公司的技术骨干?
核心价值
-
把我这10多年来所学到的知识、总结的经验、吸取的教训分享出来
-
针对不同的学生量身定制规划学习成长路线、1对1个人指导、代码审阅等
-
解答各种技术问题
-
为公司提供技术解决方案
请查看本站右边的信息联系我。
版权所有
所有文章内容版权所有,任何形式的转发/使用都必须先征得本站书面同意。本站保留一切追究的权利。