参考国外博客 BECOME A BETTER DEVELOPER BY READING SOURCE CODE
为什么要读开源源码?
作者的观点拿读书举例子,我们通过读书来提高个人写作的能力。阅读开源源码是一个好的方式。从某种意义上说,语言的应用场景是人,人的大脑通过读取语言信息,进行信息处理,下一步指导人的行为。计算机语言(例如,Java,C++等等)面对的计算机,CPU类似于人的大脑。
正如,我们通过读书,了解其他人的怎么写文章,哪里写得好,学习好的写作技巧。编程技巧的提高同样可以通过阅读好的源码来提高。
在我们是学生阶段,老师告诉我们要阅读经典。同样,要读好的代码,一般来说开源源码的代码的质量都不错。阅读不好的代码,或者自己不断重复不好的代码风格,是很难提升的。
从哪里找好的源码?
- github
- 组织内部的代码
- 书籍
- 博客
- stackoverfow
怎么读代码?
- 专注能够增加了解每天都用的知识的代码,或者学习未来想要使用风格的代码。 学以致用,效果最好。
- 先从全局抽象的层面了解整个项目,然后逐渐深挖,加深理解。在onenote上记录流程和代码如何运作。阅读代码,生成一个逻辑流程图,对于修改bug非常有用。
- 获取到对于代码整体框架后,下一步就是深入理解。可以代码clone下来,通过IDE来阅读代码。在这个过程中,可以尝试理解为什么这个代码这么写。会思考如果是自己会使用什么方法,而实际是怎么实现的。代码原作者的方法是否更好或者更高效?下次遇到类似问题,我是否可以参考这种。学习好代码使用了哪些API,加强了解计算机语言语法。
- 进一步,提高了使用IDE的技巧,能更快的浏览代码,学习IDE的快捷键。
- 学习语言的新的特性和模式。作者拿他自己举例子,通过阅读C#的实际使用情况,来快速了解一些特性。
读不懂代码怎么办?
- 端正态度。读不懂就意味,需要改进。如果代码都能读懂,收益就没有那么大。
- 将一个比较大的困难点,在大脑中分割成一个个更小的块。通过问自己,代码在做什么?为什么这么写?作者是否使用了一种方法,尝试解决一个未知的问题?如果对语法不熟悉, 停下来查询文档。
- 同样的遇到不熟悉的框架类的API,可以阅读官方文档的方式最好不过了。
- 最重要的认识,自觉阅读代码需要花费时间,是对自己技能的投资。能力差,效率低,没时间学习,能力差,效率低。不能陷入到这个循环中,唯一的破解之道就是学习,阅读好代码。
从阅读源码学到了什么?
- 工匠临摹大师的作品,希冀有朝一日达到也能达到那样的技术高度。程序员通过阅读一些这个领域专家的好代码,从而提升自己。