现在去找一些 Ruby 代码阅读一下。你需要自己找代码,然后从中学习一些东西。你学到的东西已经足够让你看懂一些代码了,但你可能还无法理解这些代码的功能。这节课我要教给你的是:如何运用你学到的东西理解别人的代码。
首先把你想要理解的代码打印到纸上。没错,你需要打印出来,因为和屏幕输出相比,你的眼睛和大脑更习惯于接受纸质打印的内容。一次最多打印几页就可以了。
然后通读你列打印出来的代码并做好标记,标记的内容包括以下几个方面:
- 函数以及函数的功能。
- 每个变量的初始赋值。
- 每个在程式的各个部分中多次出现的变量。它们以后可能会给你带来麻烦。
- 任何不包含else的 if 语句。它们是正确的吗?
- 任何可能没有结束点的while循环。
- 最后一条,代码中任何你看不懂的部分都记下来。
接下来你需要通过注解的方式向自己解释代码的含义。解释各个函式的使用方法,各个变量的用途,以及任何其它方面的内容,只要能帮助你理解代码即可。
最后,在代码中比较难的各个部分,逐行或者逐个函式跟踪变量值。你可以再打印一份出来,在空白处写出你要「跟踪」的每个变量的值。
一旦你基本理解了代码的功能,回到电脑面前,在代码上重读一次,看看能不能找到新的问题点。然后继续找新的代码,用上述的方法去阅读理解,直到你不再需要纸质打印为止。
加分练习
- 研究一下什么是「流程图(flow chart)」,并学着画一下。
- 如果你在读代码的时候找出了错误,试着把它们改对,并把修改内容发给作者。
- 不使用纸质打印时,你可以使用注解符号#在程序中加入笔记。有时这些笔记会对后来的读代码的人有很大的帮助。