解读:如何更有效地学习开源项目的代码?

听到过有这样一句话,“学习开源,就尽可能的在代码里找答案,而不是在代码之外去找答案,那些都是二手的,而且很可能是不准确的。”


这里小编介绍两种关于有效学习开源项目代码的习惯:

一:

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

2.阅读项目文档,重点查阅Getting

started、Example之类的文档,从中了解如何下载、安装、以及使用该项目所需要的基本知识。

3.如果该项目有已经完成的example工程,先尝试按照开始文档的步骤,运行example,若果遇到问题,则要尝试在项目的FAQ等文档中查找答案;其次,将问题作为搜索的关键词搜索,寻找相关的解决办法;最后,还可将问题提交到项目的邮件列表,征求集体的意见。注意:在没有成功运行example之前,不要尝试修改example

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

5.在掌握基本使用功能后,则开始深入的了解该项目。比如:项目的配置管理、高级功能等。

6.如果在允许的范围内,尝试从源码上构建该项目。一般开源项目都会提供一份构建指南,介绍如何搭建开发、调试和构建的环境。

7.如可以根据自身兴趣,尝试阅读源码:

(1)阅读源码之前,查看该项目是否提供架构和设计文档,阅读这些文档可以了解该项目的大体设计和结构,则读源码的时候不会无从下手。

(2)在阅读源码时要抓住主干,尝试理清一次正常运行的代码的调用路径,这可以通过debug来观察运行时的变量和行为。同时在修改源码时,加入日志和打印可以更好的理解源码。

(3)画图,理清主干后,可以将整个流程画成流程图或者是标准的UML图,帮助记忆以及下一步的阅读。

(4)以兴趣为主,挑选感兴趣的“枝叶”代码去阅读。

(5)在阅读程序源码的时候,重视单元测试,尝试来运行单元测试,基本上一个好的单元测试会将该代码的功能和边界描述清晰。

(7)在熟悉源码后,发现有可以改进的地方,可以向该项目的开发者提出改进的意见或者issue,可以进一步帮住开发者修复和实现,参与该项目的发展。

8.通常在阅读文档和源码之后,在对该项目有比较深入的了解时,还可以进一步在广度和深度之间权衡。

第二种方法和第一种类似,但有有点不同下面看看第二种方法:

二:

1反复地操作软件,熟悉软件的组成文件以及软件功能,同时注意IE地址栏内的地址变化。

2存放数据的XML文件或者打开数据库文件,参照数据字典,了解各个表和字段的数据含意,若没有数据字典,就利用运行软件,进行数据的输入,参照输入的数据,了解各个表和字段的数据含意。

3使用Visio进行反向工程,抽出类图。

4研究“类”之间的关系,注释各个类的属性以及方法,了解程序的整体框架。

5另外去开一个项目,按照软件开发的流程,将代码分段复制进新的项目,进行编译调试。

因酷教育软件分享:http://inxedu.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,976评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,854评论 18 139
  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,256评论 3 283
  • 我决心开始坚持每天写一篇文章,到现在已经是第十篇了,“路漫漫其修远兮,吾将上下而求索”。 我通常会在晚上写文章,但...
    西达雅阅读 640评论 25 10
  • 我的丈夫 / 汪莉 1990年回茂名陪奶奶父母亲过春节,爸爸的三个同事来家里做客,周群也来了。 爸爸去哪都喜...
    汪莉_4c55阅读 472评论 12 3