调试效率翻倍:先定位,再修改
很多人排错是"改一行、跑一下、看运气",结果越改越乱。更快的做法是先定位、后修改:没搞清根因之前,一行代码都别动。
第一步:稳定复现
修不了一个无法复现的 bug。先找到一组每次都能触发的输入或操作步骤,把它记下来。能复现,才有判断"改对了没有"的标准。
- 固定输入数据、固定环境、固定操作顺序
- 偶发问题就加日志,把触发时的上下文全打出来
- 复现步骤越短越好,无关的操作一律删掉
第二步:二分缩小范围
问题藏在一大段代码或一长串提交里时,用二分法最快:
- 在中间位置打一个断点或日志,看数据到这里是否还正常
- 正常就往后找,不正常就往前找
- 每次砍掉一半,几步就能锁定到具体某行
代码没问题但某次更新后坏了,就用 git bisect 在提交历史里二分,几次就能定位到是哪个提交引入的。
第三步:让问题自己说话
# 与其猜,不如打印出来
print("进入函数,参数 =", args)
print("关键变量 =", value, "类型 =", type(value))
打日志时多打边界值和类型:很多 bug 是空值、越界、类型不对导致的,打出来一眼就看到。
第四步:一次只改一个地方
定位到根因后,一次只改一处,改完立刻用第一步的复现步骤验证。同时改好几处,出了问题又分不清是谁的功劳或锅。
小结
稳定复现 → 二分缩小 → 打日志看真相 → 一次改一处。这套流程和语言无关,Python、JS、C++ 都能用。养成习惯后,大部分 bug 的定位时间能从"一下午"压到"几分钟"。
读者评论 (0)
发表评论
评论功能暂未开放,填写内容不会发送或公开展示。