Keep Learning

现在去找一些 Ruby 代码阅读一下。你需要自己找代码,然后从中学习一些东西。你学到的东西已经足够让你看懂一些代码了,但你可能还无法理解这些代码的功能。这节课我要教给你的是:如何运用你学到的东西理解别人的代码。

首先把你想要理解的代码打印到纸上。没错,你需要打印出来,因为和屏幕输出相比,你的眼睛和大脑更习惯于接受纸质打印的内容。一次最多打印几页就可以了。

然后通读你列打印出来的代码并做好标记,标记的内容包括以下几个方面:

  1. 函数以及函数的功能。
  2. 每个变量的初始赋值。
  3. 每个在程式的各个部分中多次出现的变量。它们以后可能会给你带来麻烦。
  4. 任何不包含else的 if 语句。它们是正确的吗?
  5. 任何可能没有结束点的while循环。
  6. 最后一条,代码中任何你看不懂的部分都记下来。

接下来你需要通过注解的方式向自己解释代码的含义。解释各个函式的使用方法,各个变量的用途,以及任何其它方面的内容,只要能帮助你理解代码即可。

最后,在代码中比较难的各个部分,逐行或者逐个函式跟踪变量值。你可以再打印一份出来,在空白处写出你要「跟踪」的每个变量的值。

一旦你基本理解了代码的功能,回到电脑面前,在代码上重读一次,看看能不能找到新的问题点。然后继续找新的代码,用上述的方法去阅读理解,直到你不再需要纸质打印为止。

加分练习

  1. 研究一下什么是「流程图(flow chart)」,并学着画一下。
  2. 如果你在读代码的时候找出了错误,试着把它们改对,并把修改内容发给作者。
  3. 不使用纸质打印时,你可以使用注解符号#在程序中加入笔记。有时这些笔记会对后来的读代码的人有很大的帮助。
    Categories: