当前位置:首页 > 开发 > 开源软件 > 正文

[转]开源项目代码的学习方法

发表于: 2013-05-10   作者:braveCS   来源:转载   浏览:
摘要: 转自: http://blog.sina.com.cn/s/blog_693458530100lk5m.html http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html   1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d

转自:

http://blog.sina.com.cn/s/blog_693458530100lk5m.html

http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html

 

1)阅读features。以此来搞清楚该项目有哪些特性
2)思考。想想如果自己来做有这些features的项目该如何构架
3)下载并安装demo或sample。通过demo或sample直观地感受这个项目
4)搜集能得到的doc,尽快地掌握如何使用这个项目
5)如果有介绍项目架构的文档,通过它了解项目的总体架构,如果没有,通过api-doc了解源码包的结构
6)分两遍来阅读源码。第一遍以应用为线索,以总体结构为基础,阅读在应用中使用到的类和方法,但不用过深挖掘细节,对于嵌套调用,只用通过函数名了解最上层函数的意义,这一遍的目的在于把大致结构了然于心。第二遍就是阅读类和方法的实现细节,以第一遍的阅读为基础,带着疑问去阅读那些自己难以实现的模块。
7)总结。回味这个项目设计上的精妙,用到了哪些设计模式,能在哪些领域可以借鉴等等。

 

自己有做到1,3,4,5,6,7,7算半个。结论是没有很足够的思考

 

 

1、一边阅读代码一边写注释。这是我用过的最好的方法,对代码理解得更深入,看一些重要代码或者特别难懂的代码时挺有用。更何况,注释也是一种文档嘛。

2、一边阅读代码一边绘制UML。这个方法适用于类之间的关系较复杂和调用层次较深的情况,我一般都是先绘制顺序图,然后为顺序图中的类绘制关系图。

3、通过Debug来跟踪程序的主要执行过程,这样就可以分清主次了,阅读的时候更有针对性。

4、类的快速阅读。先弄清楚它在继承链中的位置,看看它的内部状态,也就是成员变量,一般来说,类的对外接口都是对成员变量的访问、加工、代理等,然后看看它的对外接口,也就是公有成员函数,识别核心的一个或多个函数,这时候你应该可以大概了解这个类的职责或作用了。可能这个类是某个设计模式中的一个组成部分,所以,设计模式的掌握对代码的快速阅读也是很有帮助的。

5、带着问题去阅读。比如想了解android中的消息机制,那么看看Looper、Handler、MessegeQueue这几个类就可以了,其他的不要去看,要不然就跑题了。

  下面列几个阅读源码时所处的情景,在特定场景下用哪些方法:
     不太熟悉业务逻辑,还不是很清楚它是干啥的,可以用3、5。
     代码量很大,有几十万行,甚至百万行,可以用2、3、5。
     你无法看见程序的运行过程,比如没有用户界面,也有可能是无法运行的,可以用3、5。
     设计复杂,用了大量的设计模式,调用链很深,可以用1、2、3、4、5。
     时间有限,没有那么多时间让你看源码,可以用3、5。

平时都用到2,3, 1,4,5有所启发。

[转]开源项目代码的学习方法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 一、历史 开
原文地址:http://blog.csdn.net/feixiaoxing/article/details/7749331 【 声明:版权所有,欢迎转
一、历史 开源代码作为一种特色的产物,随着物联网的进步得到了前所未有的发展。一开始,很多代码其
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 一、历史 开
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 http://blog.
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 http://blog.
感谢博主:http://blog.csdn.net/feixiaoxing/article/details/7749331 【 声明:版权所有,欢迎转
原文:http://blog.jobbole.com/77881/ 作者伯乐在线 - whysear 【导读】:这个问题来自Quora,提问
既然你找到这篇文章来,说明你是真心想学好JavaScript的。你没有想错,当今如果要开发现代网站或web
原文地址为: http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号