有这样一些bug,本来这个bug并不算什么大bug,但是因为这个bug的产生引起了一个连锁的反应,导致严重的bug,而且可能非常非常的严重。
对于这种bug,我的观点是,写代码的人,并没有把逻辑整理清楚,在不该调用的地方发生了调用,或者说,在错误的地方进行了调用。
用面向对象的方法说,就是职责不清晰。
比如一个builder,在build的时候把其他人的工作揽过来了,本来应该是别人准备好的数据或者推迟计算的数据,在build的时候,去计算了,那么builder的职责就出现问题了。
结果是什么呢,比如这个计算需要获取一个外部资源,但是突发了异常,这个外部资源不可访问了,本来作为提前准备的数据的话,是不会进入这一步的,但是现在导致整个builder都失效了。
我觉得这是一种哲学,虽然并不知道这为什么是哲学。。
有些奇怪的bug,在没问题的时候,确实是无论怎样都没问题,但是出现问题的时候,就是无法挽回的大问题,甚至无法控制。