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

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


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

一:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,104评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,816评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,697评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,836评论 1 298
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,851评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,441评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,992评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,899评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,457评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,529评论 3 341
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,664评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,346评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,025评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,511评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,611评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,081评论 3 377
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,675评论 2 359

推荐阅读更多精彩内容

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