如何通过分割问题 Debug
△向上生长, TO BE TO UP. 程序员的充电站△
如何成为优秀程序员第 3/100 期分享
转载请联系授权(微信ID:qianpangzi0206)
01
调试(Debug)是有趣的
02
调试技术中分治的关键
调试技术中分治的关键和算法设计里的分治是一样的。 你只要从中间开始划分,就不用划分太多次,并且能快速地调试。 但问题的中点在哪里? 这就是真正需要创造力和经验的地方了。 对于一个真正的初学者来说,可能发生错误的地方好像在代码的每一行里都有。 一开始,你看不到一些你稍后开发的时候才会看到的其它纬度,比如执行过的代码段,数据结构,内存管理,与外部代码的交互,一些有风险的代码,一些简单的代码。 对于一个有经验的程序员,这些其他的维度为整个可能出错的事情展示了一个不完美但是有用的思维模型。 拥有这样的思维模型能让一个人更高效地找到谜题的中点。 一旦你最终划分出了所有可能出错的地方,你必须试着判断错误躲在哪个地方。 比如: 这样一个谜题,哪一行未知的代码让我的程序崩溃了? 你可以这样问自己,出错的代码是在我刚才执行的程序中间的那行代码的前面还是后面? 通常你不会那么幸运就能知道错误在哪行代码甚至是哪个代码块 。 通常谜题更像这个样子的: “图中的一个指针指向了错误的结点还是我的算法里变量自增的代码没有生效? ”,在这种情况下你需要写一个小程序去确认图中的指针是否都是对的,来决定分治后的哪个部分可以被排除。 下一讲: 如何移除错误 相关阅读: 1.比编程语言更重要的是什么? 2.学会 Debug一个会思考的技术小工
长按扫码关注,每天五分钟和我一起来充电