转自:http://www.blogjava.net/killme2008/archive/2012/05/22/378885.html

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

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

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

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

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

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

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

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

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

以上是我个人的一些习惯,我自己也并没有完全按照这个来,但是按照这个顺序,基本上能让你比较高效地学习和使用某个开源项目。

转载于:https://www.cnblogs.com/bugchecker/archive/2013/01/30/3041587.html

如何熟悉一个开源项目相关推荐

  1. 开源项目贡献者_我如何从一名贡献者转变为一个开源项目维护者

    开源项目贡献者 by Dhanraj Acharya 通过Dhanraj Acharya 我如何从一名贡献者转变为一个开源项目维护者 (How I went from being a contribu ...

  2. 准备启动一个开源项目 - 技术族谱 - 先期利用Goolge云计算平台

    准备启动一个开源项目:技术族谱 . 是什么? 技术族谱 ,该项目提供一种手段,描述技术领域中的概念和知识点的关系,并以此关系网为基础,扩展相关应用. 为什么? 我是做计算机行业的,就先从我看到的现象说 ...

  3. 如何从0开始参与一个开源项目?

    今天我准备和你详细介绍如何开始参与开源项目,帮助你在 GitHub 上完成第一个 PR 的合入. 当然,除了正常的 PR 合入流程之外,我还准备详细介绍一下如果一个 PR 提交后遇到了冲突.需要追加 ...

  4. [征询意见][投票]先集中力量做好一个开源项目

    最近一直考虑在博客园组织开源项目的开发,我觉得发挥社区力量做出成功的开源项目是社区价值的体现.虽然组织开源项目的难度很大,也有过失败的教训,但只有实际地去做,去真正地面对挑战,才有成功的可能,否则,只 ...

  5. 如何做好一个开源项目之徽章(二)

    在上一篇[如何做好一个开源项目(一)],笔者已经介绍过开源项目运作和维护的一些理念了,本篇开始,笔者将着重于介绍一些开源项目维护过程中的一些细节,比如徽章.构建等等.由于最近经常出差,所以博客有中断, ...

  6. 如何做好一个开源项目(一)

    做好一个开源项目其实是一件比较费时费力费心的工作,它的最大难点除了代码维护之外,还包括后期的维护和持续的跟进.我曾经做过不少开源项目,但是坚持下来的,目前有信心能够持续维护的也只有Magicodes. ...

  7. 如何从0开始开源项目参与_如何开始一个开源项目

    如何从0开始开源项目参与 by Dmitriy Strukov 德米特里·斯特鲁科夫(Dmitriy Strukov) 如何开始一个开源项目 (How to start an Open Source ...

  8. 独立开发变现周刊(第41期):一个开源项目一个人每月收入8万美金

    分享独立开发.产品变现相关内容,每周五发布. 目录 1.Budibase: 开源的低代码平台 2.沃尔玛通过SEO每月获得2.5亿流量的秘密 3.DesignJoy: 一个人的设计团队,月收入9万美金 ...

  9. 如何开始做一个开源项目?他的亲身经历值得参考

    (点击上方公众号,可快速关注) 英文:Vincent Voyer,翻译:Linux爱好者 - nEoYe [导读]:作者 Vincent Voyer 用亲身经历鼓励大家从事开源活动:他在 Nodejs ...

最新文章

  1. R语言ggplot2可视化自定义可视化结果的背景色(background color)实战:改变整个画板(panel)的背景色、改变图像(plot)区域的背景色
  2. [SDOI2017]新生舞会
  3. Python并发编程之多进程(二)
  4. 如何debug函数_如何使用 pdb 来性感 debug 你的 Python 代码?
  5. Deep learning:五(regularized线性回归练习)
  6. aws lambda使用_使用AWS Lambda的CloudWatch事件通知
  7. 空间滤波_第三章 灰度变换与空间滤波-(六)锐化空间滤波器之非锐化掩蔽
  8. tomcat9 启动中提示 org.apache.catalina.webresources.Cache.getResource Unable to add t
  9. 详解MySQL事务隔离
  10. iverilog+gtkwave 进行仿真
  11. 2.Prometheus 监控技术与实践 --- Prometheus基本概念及部署
  12. 网页中打开msn窗口方法
  13. rtl8169网卡驱动linux,Realtek RTL8110/RTL8169网卡驱动7.005 For Win7
  14. win10桌面无法新建文件夹解除管理员权限方法
  15. MPB:遗传发育所白洋组-​高通量分离培养和鉴定植物根系细菌
  16. 雅虎邮箱 转发设置_如何在Yahoo Mail中设置外出答复
  17. matlab char 转asc码,科学网—C语言与MATLAB对二进制文件与ASCII文件转换 - 张凌的博文...
  18. IMF最新报告:E-money上位,合成版「央行数字货币」迎来曙光
  19. MaxEnt软件的下载与安装
  20. 关于系统设计中的流程图

热门文章

  1. ee2prom擦除 c语言,浮点数在E2PROM中的存取方法.doc
  2. SoftPool算法详解
  3. Visual Studio:error MSB8020
  4. 复制 和 粘帖 的方法(特别在linux中),备忘
  5. Chrome上出现的问题
  6. C++笔记——malloc基本用法
  7. gan学到的是什么_GAN推动生物学研究
  8. 忍者必须死3 玩什么忍者_降维:忍者新手
  9. 一般线性模型和混合线性模型_线性混合模型如何工作
  10. 康美药业财务造假给股民造成的损失,股民该怎么办?