一、第一步:查阅文档
1. 查阅文档与博客
通过快速阅读开源项目、使用方法等这类文章,你就能大致了解该项目的意义、功能和基本使用方法。如果符合自己的需求,开始耐心阅读项目官方提供的文档,从中学习一些具体的下载 、安装和使用的方法以便了解项目的全貌。
2. 带着问题去阅读
·· 这个项目解决了什么问题?
·· 这个项目涉及了那些成熟的技术?
·· 这个项目是否符合我的要求(用户规模、使用场景、性能、安全性等等)?
·· 当阅读完文档后,是否能尝试画出大致的架构图?
二、第二步:动手实践
读文档过程中,按操作指南亲手实践,有助于加深理解,同时还会注意到很多细节,可以更清晰感受到项目是否符合自己的需求。
1. 搭建项目
通过README文件,安装部署,按实例代码尝试。接着可以尝试根据自己的理解进行代码修改,若异常直接度娘或者google,如还未解决直接提交到开源项目邮件列表中。
常用几大网站:
·· google: www.google.com (需翻墙)
·· 度娘: www.baidu.com
·· 开发人员必备:statckoverflow.com
·· 项目相关讨论组:groups.google.com
·· github: github.com
2. 深层改动
基本部署和使用成功后,强烈建议试着从源码构建和部署该项目,从开发,调试,发布一体化全部过程,全方位感受项目优缺点。
接着可以进行一些更高级的配置。一个良好的开源项目,必然提供一份详尽的指南,挑感兴趣的阅读即可
三、阅读源码
阅读源码的两种方式:一是根据运行的代码调用过程阅读,二是根据架构分模块阅读。
1. 跟着运行过程阅读
刚上手的过程可以使用第一种方式 ,通过在实践过程中对某个命令或参数的理解, 从主干开始, 一步一步理清这个命令在运行过程中代码调用的路径。通过debug工具观察变量和函数、修改源码打印日志,可以更好地帮助你理解源码。
当理清这个过程后,可以将这个过程用流程图的形式记录下来,从而加深印象,方便下次阅读的时候快速回忆对比。
2. 分模块阅读
在理清了程序和运行的基本流程后,可以根据架构上各个模块的作用,挑选你感兴趣的部分阅读,如网络、存储、通信、用户接口、界面等,选择一个模块,深入到实现的细节之中。
此时也可以带着如下的几个问题帮助自己理解。
·· 调用了什么底层库?
·· 采用了什么设计模式?
·· 这么写有什么好处?
如在阅读中出现瓶颈,无法理解代码用意,可以去阅读一下相关的单元测试。一个好的单元测试描述了代码主要功能和数据边界。通过运行和理解单元测试,可以有效的帮助理解源码。
相信经过以上三步,应该对开源项目非常熟悉了。
网友评论