没有哪个文坛巨匠天生下来就能写出巨著来,他们都是通过阅读大量作品并参考借鉴最后形成自己独特的风格,其实写程序也是一样。
现在很多优秀的软件库都是开源的,这给了我们可以零距离向大牛学习的机会,阅读源代码给我们带来的好处也是非常多的。
1、学习代码风格
优秀的开源软件都来自于经验非常丰富的老司机程序员之手,往往他们写的代码更规范、无论是从可读性还是性能上经过仔细斟酌,不断优化结果。比如著名的HTTP请求库Requests就是一份不错的源码学习典范,因为里面有教科书似的 Pythonic 代码。
2、理解作者思路
作者实现某个功能,通常是经过多次重构不断改进得以实现最优的解决方案,那么我们可以思考作者为什么要这么做,比如Cpython里把小整数缓存到内存中,提高系统性能,你不去看源代码是不知道的,因为书上很少会讲到这些。再比如 Cpython中的垃圾算法为什么要使用别人都不用的引用计数法呢?因为权衡利弊之后,引用计数是最简单的一种垃圾收集算法,再配合其他算法也能达到很好的效果。
3、提升编程水平
毫无疑问,通过阅读源代码,对自身的成长是非常有帮助的,站在巨人的肩膀上,才看得比别人更远。阅读优秀的源代码是提高编程水平的方式之一
阅读源代码的误区
初学者阅读源代码容易陷入一种误区,认为具备阅读源代码能力才牛逼,于是自己也扎进代码深渊,一开始欣喜若狂,后来开始迷失自我,有始无终,最后一无所获,还打击了自信心。
主要原因是,现在的项目动不动就是几万行的代码,如果一行行的读下去要不了几分钟就放弃了,其次,纯粹的”读”是没用的,还需要有思考。那么如何正确地阅读源代码?
阅读源代码的一些技巧
高效阅读源代码,可以从以下几个方面入手
1、读文档
任何一个优秀的开源项目标配有完善的文档,RTFM(Read The Fucking Manual)是了解开源项目最好的方式之一,同时也为后面阅读源代码提供了基础。
2、找程序入口
找到了文档之后,就根据文档找到程序的入口,从最简单的实例下手
3、跑单元测试
要想知道API怎么使用,除了可以查看文档之外,另外一个武器就是跑单元测试,单元测试对每一个方法都做了边界测试,通过阅读测试代码也能知道怎么样去使用这些方法。
4、找最早期版本
往往最开始的版本代码是最简洁的,读起来要轻松很多
5、多搜索一下网络上看看是否有前人做些相关的总结。这也是很好的参考。