如何高效阅读优秀的源代码?

开始聊这个话题之前,我们需要知道:什么样的代码是优秀的源代码?为什么要阅读它们?优秀的代码如同好文章一样,文章有明确的主题、清晰的层次,代码则表达了特定的功能、严密的逻辑。好的代码不仅实现了强大的功能,而且模块化鲜明,让使用者很容易上手,不易出错,同时它们的实现方式也很优雅。读好文章可以使人思维进步,丰富知识,提高写作水平,那么阅读优秀的源代码也能让人提高写代码水平,提升抽象思维能力,学习到高效优雅的实现方式。

以前,我阅读代码时总是把关注点放在了它的具体实现细节上,只想看看作者的代码实现方式,而忽略了它的整体性。这样的阅读方式很微观,且没有任何本质性的提高,看过的代码可能过一段时间就忘记了,而自己在写代码时又回到了以前固有的书写方式。因此,这样的阅读方式对自己没有实质性的帮助,也不能提高写代码水平,如同天天浏览文章,能记住少量的事实,但写作水平依旧。

现在,我掌握了科学的阅读方法,并且不断地践行它,使自己的学习能力有了很大提高。那么,如何高效阅读呢?

首先,需要思考为什么需要阅读它,是因为它实现了怎样的强大功能,它具体表达了哪些能力。带着这些问题,能够拥有宏观的整体认识。在这一步的过程中,可以先查看该代码的文档(好的代码应该有良好的文档说明),了解这份代码的目的和实现了哪些功能,然后直接查看源代码,粗略地浏览它整体的运作流程,这个时候没有必要死抠细节,但要有大概的认识。

接下来,要学习它的各个模块(好的代码应该是模块化分明),从文档中或者直接从代码目录文件结构中了解它都拥有哪些模块,更进一步从每个文件中查看包含了哪些模块,熟悉这些模块之间如何进行协作。在这个阶段,基本上就明白这份代码的功能和运作方式,如何使用该代码也迎刃而解。

实际上,经过上面两个阅读过程后,剩下的就是具体功能和模块的实现细节,由于每个人的思维方式和知识背景不同,具体的实现也会有所差异,这也体现了每个人的代码文笔,优秀的代码当然也有可借鉴之处,它们的实现往往比一般人的优雅且正确。因此,在最后,可以带着模仿的心态来阅读代码的具体实现,这些实现往往凝聚了代码作者的经验和知识。当然,要想完全记住这些具体实现很困难,也没有必要,只有掌握了具体实现的背后逻辑,加上不断的用同样实现方式去练习,最后形成的风格便是学习到的有效成果。

总体来说,任何产物都有它的主题,逻辑,实现,比如文章,代码,产品,要高效地读懂它们,就必须带着基本的问题和明确的步骤去学习了解。

你可能感兴趣的:(如何高效阅读优秀的源代码?)