返回顶部

一缕半夏微光

温柔半两,从容一生

导航

《软件调试修炼之道》阅读笔记③

今天阅读了《软件调试修炼之道》的第三部分——深入调试技术

该部分分为四个章节,分别为“特殊案例”、“理想的调试环境”、“让软件学会自己寻找缺陷”、“反模式”。

一、特殊案例

一个真正的修复可能涉及大范围的软件重构,甚至深层次的软件体系结构的变化。

并发软件是难以重现、难以诊断以及难以修复的主要问题来源。

海森堡缺陷,一个当你开始寻找的时候就会“消失”的缺陷,其名字来自于量子力学中的海森堡不确定理论,这个理论(不严格地说)指出在观察某一系统的过程中行为不可能不发生改变。

Linus法则——“只要给予足够的关注,所有的缺陷都是浅显的”。

有的时候我们会调用第三方代码,比如就像我们写程序的时候,偶尔会调用到layui、bootstrap、Spring等等,但是若是我们在调试程序的时候出现了问题,我们应该先怀疑自己的代码是否存在问题。

二、理想的调试环境

代替测试是在测试过程中使用“虚拟”测试对象来代替真实的测试对象。常见的代替测试技术:模拟测试、桩测试。

三、让软件学会自己寻找缺陷

断言是一个缺陷检测机制,不是一个错误处理机制。

不应该使用断言来处理,而应该使用错误处理机制来处理的几个例子

(1)试图打开一个文件却发现它并不存在

(2)通过网络连接检测和处理无效的数据

(3)当写入文件时空间已用完

(4)网络错误

可以使用断言来做下面的事情:

(1)记录和自动验证假设

(2)虽然在产品发布的时候要有鲁棒性,但在调试期间要确保软件是脆弱的。

我们在问题出现之前要抢先检测系统问题,例如资源泄露和异常处理问题。

四、反模式

优先级!(之前我记得我看过一本书,但是不记得叫什么了,里面也是谈论到优先级,说的是我们在写程序的时候,先列出一张表,表上是各种任务,然后按照其任务的重要程度来写程序)

救火模式永远不会修复质量问题。花些时间找出并修复根本原因。

避免彻头彻尾重写!

posted on 2021-11-22 21:15  一缕半夏微光  阅读(31)  评论(0编辑  收藏  举报