神奇的「小黄鸭调试法」

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

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


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



没错,就是这个小黄鸭。


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


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


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


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


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


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

目录
打赏
0
0
0
0
11
分享
相关文章
浅谈mysql数据库迁移至国产化达梦数据库
项目要求mysql数据库数据需要转到达梦数据库,对于达梦数据库的了解尚且不多,一开始使用手动转SQL脚本,效率极低,非常容易出错。达梦数据库的资料实在有限,经过后期研究,发现原来DM已经有自己的数据迁移工具,使用之后非常方便。对mysql数据库转达梦数据库的操作流程做一个简要分享。
5916 0
浅谈mysql数据库迁移至国产化达梦数据库
接口的幂等性设计和防重保证,详细分析幂等性的几种实现方法
本篇文章详细说明了幂等性,解释了什么是幂等性,幂等性的使用场景,讨论了幂等和防重的概念。分析了幂等性的情况以及如何设计幂等性服务。阐述了幂等性实现防重的几种策略,包括乐关锁,防重表,分布式锁,token令牌以及支付缓冲区。
7770 0
接口的幂等性设计和防重保证,详细分析幂等性的几种实现方法
使用Python和Pandas处理CSV数据
使用Python和Pandas处理CSV数据
230 5
MaxCompute操作报错合集之遇到报错:"Catalog Service Failed",该如何处理
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
144 0
【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
【4月更文挑战第12天】【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
『Docker Compose』使用国内镜像极速安装Docker Compose
📣读完这篇文章里你能收获到 - 使用国内镜像极速安装Docker Compose
20479 0
『Docker Compose』使用国内镜像极速安装Docker Compose
【Web 前端】JS模块化有哪些?
【4月更文挑战第22天】【Web 前端】JS模块化有哪些?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等