神奇的「小黄鸭调试法」

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

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


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



没错,就是这个小黄鸭。


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


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


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


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


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


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

相关文章
|
编解码 算法 安全
【总结整理】【路径规划】- 浅谈路径规划算法
# 0 序 本文将从两个大块浅谈一下路径规划算法,第一部分是规划算法本身,第二部分是地图。 ---- howe # 1 前言   移动一个简单的物体(object)看起来很容易,而路径搜索却比较复杂。那为什么涉及到路径搜索就产生麻烦了呢?考虑以下情况: ![image.png](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/
20736 4
【总结整理】【路径规划】- 浅谈路径规划算法
|
数据采集 数据挖掘 数据处理
使用Python和Pandas处理CSV数据
使用Python和Pandas处理CSV数据
280 5
|
NoSQL MongoDB 关系型数据库
13个Mongodb GUI可视化管理工具,总有一款适合你
本文介绍了13个好用的MongoDB可视化工具。Robomongo,MongoDB Compass,phpMoAdmin等
112025 0
13个Mongodb GUI可视化管理工具,总有一款适合你
|
Docker 容器
gitlab推送企业微信几种方式汇总(二)
gitlab推送企业微信几种方式汇总(二)
3450 1
gitlab推送企业微信几种方式汇总(二)
|
自然语言处理 安全 开发者
在构建知识库时,如何有效管理领域术语和同义词信息
在构建知识库时,如何有效管理领域术语和同义词信息
473 0
|
消息中间件 监控 Kafka
【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
【4月更文挑战第12天】【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
|
算法 测试技术 开发工具
【软件设计师备考 专题 】系统设计基础:从总体到详细
【软件设计师备考 专题 】系统设计基础:从总体到详细
472 0
|
新能源 测试技术 数据库
校园车辆管理系统的设计与实现(论文+源码)_kaic
校园车辆管理系统的设计与实现(论文+源码)_kaic
|
前端开发 JavaScript API
用 Python 从头搭建一个在线聊天室
用 Python 从头搭建一个在线聊天室
145 0
|
Java Maven
Mac安装Maven(图文解说详细版)
Mac安装Maven(图文解说详细版)
Mac安装Maven(图文解说详细版)