我最实用的调试经验是“小黄鸭法”:当我遇到百思不得其解的bug时,我会对着一个橡皮鸭子(或同事)把代码逻辑逐行讲一遍。比如,我曾为一个总是返回错误值的函数向鸭子解释:“你看,这里如果A成立,应该返回B,但这里有个‘与’条件写成了‘或’……” 往往在复述的过程中,自己就发现了那个被眼睛忽略掉的明显错误。
我最实用的调试经验是“小黄鸭法”:当我遇到百思不得其解的bug时,我会对着一个橡皮鸭子(或同事)把代码逻辑逐行讲一遍。比如,我曾为一个总是返回错误值的函数向鸭子解释:“你看,这里如果A成立,应该返回B,但这里有个‘与’条件写成了‘或’……” 往往在复述的过程中,自己就发现了那个被眼睛忽略掉的明显错误。