如果你读过别人的源代码,你是如何处理这些代码的?您正在寻找什么模式(数据类型、循环、控制流的使用……)?你能读别人的代码多长时间而不感到无聊?到目前为止,您发现的最令人兴奋的模式是什么?
起初,我忽略了更改代码的冲动。这有时很难做到。但先了解后改变可以为自己节省很多讨厌的“学习经历”。
接下来如果格式错误,请重新格式化。如果有代码格式化程序,请使用它。这是因为您倾向于查看缩进,如果缩进不好,您对代码的理解也会受到质疑。
然后,如果有复杂的数据结构,我喜欢画一个小图。这里的挑战是让它尽可能简单。墙上的大图表很有趣,但大多数时候,它们看起来很麻烦。所以这是浪费时间。
如果你最终明白了一段代码的作用,请写下评论。这是很重要的,否则你下次来的时候就不会明白了。
以下步骤是创建单元测试。现在你不仅可以测试代码,还可以测试你对代码的理解。
最后,如果您理解它并且知道它可以(并且需要)更好,请更改它。但一定要运行测试。除非你通过每个解决的错误获得报酬。
一个时髦的新术语是 Code Spelunking。
除了明显的“从上到下工作”的一般方法之外,这取决于为什么我正在阅读它:代码审查,试图理解一些可用的代码以适应我自己的使用,试图学习新的技术等
这也很大程度上取决于语言。如果是 OOPL,我可能会这样做:
在最终产品中选择一个你理解的项目,看看它是如何组合在一起的。如果您进行了单元测试,那么它们会很有帮助。