分而治之,各个击破——软件调试的惯用战术

分而治之,各个击破,是我们解决问题的常见方法。用在军事上,它成就了一个又一个经典战例;用在软件开发上,它也是软件调试的惯用战术。

分而治之,各个击破,说白了,也就是当我们遇到一个比较大的问题时,我们可以将其分割为几个小问题进行解决,这样一来问题的难度大幅下降,解决问题的思路也更加清晰。

依据这种思想,当我们在软件调试的过程中,遇到了非常复杂的问题,首先就是要把复杂的问题分解成一个个的小问题,并且把它们分离出来。一旦你隔离出有问题的模块,修复问题会很容易。

在将隔离代码模块的过程中,可以会遇到以下两种情况:

  1. 将代码从运行环境中隔离出来,问题消失了

这意味着问题就在隔离出来的代码之中,只要对这个代码模块进一步分析,就能找到问题的原因解决之。

2. 将代码从运行环境中隔离出来,问题还在

这意味着隔离出来的代码模块是没有问题的,问题存在于其它模块之中。那么,下一次我们就把其它的模块隔离出来,继续验证问题是否出现。

实际上,查找问题的“二分查找法”,就是将疑似存在问题的代码空间一分为二,看看问题在哪个部分,之后,再对有问题的部分一分为二,这样就可以逐步逼近问题的所在。

软件调试采用分而治之、各个击破会带来以下好处:

  • 将问题与软件的其他部分隔离开,可以排队干扰,将关注点直接放在与问题有关的事务上;
  • 隔离出来的代码可以通过各种改变,来接近问题发生的核心,而不用担心会影响软件既有的功能——与之相反,你不可能对正在运行的软件系统这样做;
  • 可以更快地发现问题,因为你只需要和少量代码打交道。
  • 分治思想很好用,复杂问题不头疼

    各个击破小问题,软件调试变轻松

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年7月25日
    下一篇 2019年7月26日

    相关推荐