如何有效的阅读开源代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haolipengzhanshen/article/details/28278367

一、初步了解

1.在下载源代码之后,先看下代码目录组织结构,如base代表基础库,net代表网络库等我

2.开始阅读框架的源代码之前,先去google搜集下资料:

这个框架是解决了什么问题?都是用了什么技术?

分为多少个模块,每个模块之间有什么联系?

尽量看官网英文的资料,因为中文技术博客的内容很多是错误的。

3.试图将程序完整的跑起来,编译通过、修改配置文件,然后正常运行起来;

这时我已经把程序跑起来,玩起来,知道它实现了什么功能,并且我也在使用此功能

二、耐心看文档,看测试用例

一个好的开源项目是有完善的文档的,比如百度开源的RPC框架brpc,项目地址是https://github.com/brpc/brpc

README.md:一份新手导读手册

docs目录:框架设计文档,业务相关基础知识介绍文档,编译入门指南,代码的风格文档,程序的命令操作手册,以及类图,流程图,架构图等等有用的文档,务必要耐心好好的看,多看少问多实践

example目录:例子目录,先通过例子上手学会如何使用

test目录:测试目录,学习下单元测试是如何写的

三、玩耍环节

各种玩:

执行example中的例子查看效果,也可以修改example中的例子来验证自己的想法。

修改test目录中的代码,来验证自己的想法

程序配置也有很多可以玩的地方,尽情的玩,但是千万别在线上环境玩!!!!

先学会如何使用,然后再去从源代码角度理解原理的东西。

四、读源代码,反哺项目开发代码

相信经过前面三个阶段,你已经是各种玩,各种瞎折腾,心里还是有很多疑问吧?

这个功能真牛逼,是如何实现的呢?

我的配置文件为什么没有生效呢?

程序为什么被我搞挂了呢?

。。。。。。。。。。。。。

好!很好!带着这些你心里的问题,去源代码中找答案吧

1.先总体后局部,把握好主体逻辑代码,然后再逐层深入下去

一上来就陷入太多的实现细节是大忌!!!

2.熟悉主体逻辑后,你大概能知道你感兴趣的代码处于整个项目中的什么模块,什么文件,什么类中

是个什么样的处理流程,定位到具体代码,一行行的分析它

这个过程会持续一段时间,今天你感兴趣这个问题,明天感兴趣那个问题。

3.带着问题去看代码,一个系统实现了什么功能,为什么要实现这些功能,是基于什么业务场景?

如果要我来实现一套类似的系统,我会如何来考虑问题,如何来实现这套系统?

然后再看看别人是如何实现的,找到两者之间的差距,并不断缩小之间的差距。

五、写笔记记录想法,促进思考和总结

1.记录解开问题谜团的过程

2.记录下开源代码中好的设计思想,好的代码技巧,以及任何你觉得好的东西

3.画整个程序的流程图,有利于理解程序的整个流程,而不被代码的细节所干扰。

4.坚持记录源代码学习笔记,记笔记能够有助于更深入的思考,以前很多问题只是浅层思考,不够深入

六、仿写项目

如果感觉自己对于项目理解的还不到位,我推荐一个笨方法,抄项目代码,抄着抄着你就懂了。

如果想深刻的学习到源代码的精髓所在,请写一个相近的程序进行操练。

理解了这个程序并不表明掌握了这个程序,只有在操练一个相近的程序时,才知道你到底理解了多少,掌握了多少

猜你喜欢

转载自blog.csdn.net/haolipengzhanshen/article/details/28278367