转: 如何快速学习一个开源项目源码?


转自:https://www.zhihu.com/question/19637879/answer/51507188设计模式


如何快速学习一个开源项目源码?网络

你有个任务,须要用到某个开源项目;或者老大交代你一个事情,让你去了解某个东西。怎么下手呢?如何
开始呢?个人习惯是这样:架构

1.首先,查找和阅读该项目的博客和资料,经过google你能找到某个项目大致介绍的博客,快速阅读一下就
能对项目的目的、功能、基本使用有个大概的了解。单元测试

2.阅读项目的文档,重点关注相似Getting started、Example之类的文档,从中学习如何下载、安装、甚至
基本使用该项目所须要的知识。学习

3.若是该项目有提供现成的example工程,首先尝试按照开始文档的介绍运行example,若是运行顺利,那么
恭喜你顺利开了个好头;若是遇到问题,首先尝试在项目的FAQ等文档里查找答案,再次,能够将问题(例如
异常信息)当成关键词去搜索,查找相关的解决办法,你遇到了,别人通常也会遇到,热心的朋友会记录下
解决的过程;最后,能够将问题提交到项目的邮件列表,请你们帮你看看。在没有成功运行example以前,不
要尝试修改example。测试

4.运行了第一个example以后,尝试根据你的理解和须要修改example,测试高级功能等。google

5. 在了解基本使用后,须要开始深刻的了解该项目。例如项目的配置管理、高级功能以及最佳实践。一般
一个运做良好的项目会提供一份从浅到深的用户指南,你并不 须要从头至尾阅读这份指南,根据时间和兴
趣,特别是你本身任务的须要,重点阅读部分章节并作笔记(推荐evernote)。debug

6.若是时间容许,尝试从源码构建该项目。一般开源项目都会提供一份构建指南,指导你如何搭建一个用于
开发、调试和构建的环境。尝试构建一个版本。设计

7.若是时间容许而且有兴趣,能够尝试阅读源码:
(1)阅读源码以前,查看该项目是否提供架构和设计文档,阅读这些文档能够了解该项目的大致设计和结
构,读源码的时候不会无从下手。
(2)阅读源码以前,必定要能构建并运行该项目,有个直观感觉。
(3)阅读源码的第一步是抓主干,尝试理清一次正常运行的代码调用路径,这能够经过debug来观察运行时
的变量和行为。修改源码加入日志和打印能够帮助你更好的理解源码。
(4)适当画图来帮助你理解源码,在理清主干后,能够将整个流程画成一张流程图或者标准的UML图,帮助
记忆和下一步的阅读。
(5)挑选感兴趣的“枝干”代码来阅读,好比你对网络通信感兴趣,就阅读网络层的代码,深刻到实现细
节,如它用了什么库,采用了什么设计模式,为何这样作等。若是能够,debug细节代码。
(6)阅读源码的时候,重视单元测试,尝试去运行单元测试,基本上一个好的单元测试会将该代码的功能
和边界描述清楚。
(7)在熟悉源码后,发现有能够改进的地方,有精力、有意愿能够向该项目的开发者提出改进的意见或者
issue,甚至帮他修复和实现,参与该项目的发展。调试

8.一般在阅读文档和源码以后,你能对该项目有比较深刻的了解了,可是该项目所在领域,你可能还想搜索
相关的项目和资料,看看有没有其余的更好的项目或者解决方案。在广度和深度之间权衡。

以上是我我的的一些习惯,我本身也并无彻底按照这个来,可是按照这个顺序,基本上能让你比较高效地
学习和使用某个开源项目。

原文:如何熟悉一个开源项目?

相关文章
相关标签/搜索