西西河

主题:【原创】朗读代码 -- 代码ABC

共:💬30 🌺32
全看分页树展 · 主题
家园 【原创】朗读代码

据说,国外有那么一间大学。

据说,那间大学有一个代码咨询小组。

据说,这个小组专门帮程序员找出其代码中的错误。

据说,在这个小组的门口摆了一只小熊。

据说,每一个过来咨询的程序员都要向这只小熊朗读自己的代码。

据说,许多人还没把代码读完就自己发现了错误。

。。。。。。。

在不太久之前,程序员还在使用文本编辑器输入程序代码。那时候没有集成调试环境;没有变量跟踪;没有单步运行;甚至程序断点也要通过代码来设定。那时候一个有力调试工具就是——打印机!

把程序打印出来,找一个远离键盘、屏幕的地方,自己客串一回电脑,把程序在心里运行一遍(也可以是几遍),实际上就是在心里朗读代码。可能出乎许多人的意外,靠这种方式可以发现大部分的错误。这种类型的错误我后来称之为“肉眼可以发现的错误”。的确许多代码错误可以仅仅通过“肉眼”发现,不需要借助复杂的集成调试环境,关键在于掌握朗读代码的技巧。

技巧在于——不要把自己当人!你就当自己是一个CPU,不要做任何假定,老老实实地计算每一个表达式,记住曾经改变过的变量,计算每一个循环的出入条件,留意每一个函数的“副作用”。实际上很多错误都是程序员对代码的理解和实际运行它的计算机不一致引起的。而代码朗读将训练你把这种不一致降到最低。这样你不但可以发现代码中的错误,而且在以后编写代码的时候自觉地写出错误很少的代码。所以朗读代码还是一个通往高级程序员的修行方式。

这种方法看起来简单,不过在一开始的时候会令人非常沮丧,因为你会发现不管检查多少次都不会发现一个错误。再加上调试环境的诱惑,现在恐怕没有多少人愿意干这种吃力不讨好的事情了。的确在调试环境中单步走一次的时间绝对比你在心中运行一次的时间更短。不过你可以把这两者结合起来,通过比较自己的运行过程和调试环境的运行过程来发现自己思维上的错误,逐渐纠正这些错误。渐渐的你就能用“肉眼”来发现错误了。而更重要的就是你写出来的代码错误也越来越少,当你能确信在五百行以内的代码能够一次通过,那么这项修行业就毕业了。

关键词(Tags): #编程#排错
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河