神奇的「小黄鸭调试法」

简介: 什么意思?就是说,当你被一段代码整不会了,怎么看也看不出问题出在哪里的时候。你可以对着一只小黄鸭,一行一行解释你的代码。不仅解释代码的功能,你最好还要告诉鸭子你到底想实现什么目标,以及你打算通过什么样的方法实现,为什么要这么实现等等。当你说着说着说着,哎,突然你就明白问题在哪了。就是这么的神奇。

大家好,欢迎来到 Crossin的编程教室 !


在程序员界流传着一个神秘debug方法,叫做“小黄鸭调试法”(Rubber DuckDebugging)。



没错,就是这个小黄鸭。


什么意思?就是说,当你被一段代码整不会了,怎么看也看不出问题出在哪里的时候。你可以对着一只小黄鸭,一行一行解释你的代码。不仅解释代码的功能,你最好还要告诉鸭子你到底想实现什么目标,以及你打算通过什么样的方法实现,为什么要这么实现等等。当你说着说着说着,哎,突然你就明白问题在哪了。就是这么的神奇。


这可不是我瞎掰的,这个方法已经得到了大量程序员亲身实践的验证。


为什么会有这种神奇的效果?


从原理上来说,这大概是因为:当我们被程序中的bug卡住的时候,如果继续沿着原有的思路去寻找答案,一时很容易陷入到自我的思维误区之中而无法察觉。但当你不得不向另外一个人或者物体去解释你的代码时,就不得不重新整理思路、换角度,更加全面地审视代码,从而看到一些不一样的细节。


而且这招还不仅仅是对编程有用,其他问题也一样有效。你有没有这样的经历,有人跑过来找你问个问题,然后他开始吧啦吧啦讲他的问题,讲到一半突然:“哎呀,我明白了!”然后留下一脸懵逼的你在原地。这个时候,其实你就已经在不知情的情况下,当了一次小黄鸭。


所以,下次你写代码遇到bug的时候,也可以来试试看这个小黄鸭调试法。

相关文章
|
11天前
|
Web App开发 JavaScript 前端开发
chrome调试秘籍,让你的开发速度飞起来
chrome调试秘籍,让你的开发速度飞起来
|
10月前
荔枝派Zero(全志V3S)运行Qt5程序
本文重新配置 buildroot,利用 buildroot 重新交叉编译 Qt,编译完成后将编译产生的可执行文件拷贝到 SD 卡,板子上电后跑到文件系统下再手动运行。
132 0
|
9天前
|
存储 程序员 编译器
VS实用调试技巧(检验程序的法宝)
VS实用调试技巧(检验程序的法宝)
8 0
|
6月前
|
Arthas 测试技术 开发者
如果你也会这样调试,那真是泰酷辣
学会如何利用 IDEA 高效 debug ,将会大大提升我们的工作效率,希望本文会给你一些参考。
884 36
|
JavaScript 前端开发 搜索推荐
不知道今天吃什么?今天吃什么 API 告诉你
不知道今天吃什么?今天吃什么 API 告诉你
185 0
|
11月前
【机房重构】VS2012 调试
【机房重构】VS2012 调试
48 0
|
程序员 编译器 C++
VS2019调试 实用调试技巧 (优秀程序员必看)
Debug :通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release :称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优 的,以便用户很好地使用。
507 0
VS2019调试 实用调试技巧 (优秀程序员必看)
|
程序员 C语言 C++
浅谈:VS中解决Bug的几个简单实用调试技巧
浅谈:VS中解决Bug的几个简单实用调试技巧
153 0
浅谈:VS中解决Bug的几个简单实用调试技巧
|
前端开发
不知道吃什么,前端代码html+js实现,直接运行
不知道吃什么,前端代码html+js实现,直接运行
182 0
不知道吃什么,前端代码html+js实现,直接运行