该书分为三个部分,分别为问题的核心、从大局看调试和深入调试技术。
今天我所阅读了《软件调试修炼之道》的第一部分——问题的核心。
有效的调试需要采取五个步骤:弄清楚软件为什么会运行失常->修复这一问题->避免破坏其他部分->保持或者提高代码的总体质量(可读性、架构、测试覆盖率、性能等)->确保同样的问题不会在其他地方发生,也不会再次发生。
核心调试方法:
一、问题重现
二、问题诊断
托马斯·赫胥黎所说:“科学的最大悲剧在于美丽的猜想被丑陋的事实所扼杀。”
设计实验的基本规则之一是,你每次只能做一个修改。
把做过的实验和结果记录下来。
塞翁失马,焉知非福,只有这样才能了解软件真实运行状况。弄清楚意想不到的运行状况可以为你节省大量的跟踪缺陷的时间。
调试器既有简单的命令行调试器,也有完全集成在IDE中的调试器,其复杂程度和处理能力千差万别,它们的共同之处就是可以在代码运行的时候对代码进行检验、设置断点、单步调试、检查程序运行状态。
三、缺陷修复
测试可采用的顺序:
(1)运行现有的测试程序,并证明它们能通过
(2)添加一个或多个新的测试程序,或修复现有的测试程序,以显示错误
(3)修复缺陷
(4)证明修复起了作用
(5)证明没有引入任何回归(以前通过的所有测试现在都没有失败)
对于代码结构(而非项目管理)而言,最显著的影响就是两种技术的广泛应用——自动化测试和重构技术
重构是改善既有代码的设计而不改变其行为的过程。
重构的同时绝不能改动代码功能,同样也不能修复有缺陷的代码。
无论什么时候遇到具有不确定性或有风险的区域,都要做审查。
四、反思
反思自己之前写的程序,在哪具体出了什么问题,如果可以的话,可以适当的以日记的形式将其记录下来,方便自己日后好回顾相关问题。