`
xitong
  • 浏览: 6205403 次
文章分类
社区版块
存档分类
最新评论

如何提高阅读源代码的效率

 
阅读更多

如何提高阅读源代码的效率

记得在开源流行之前,我看过的代码紧限于所参与的项目,能有个几万行就不错哩。后来很多优秀开源项目都相继蹦出来了,阅读的代码量那叫一个大呀!不得不看。我现在掉到android这个大坑里,每天都要看很多源代码。以前做过J2EE,看Struts2、Lucene、OSWorkflow、iText等项目的源码,动机有三:文档不足、找问题的原因、好奇。当时有个项目用到了Dojo,这家伙可以说是源码最多的开源Javascript框架了,文档却严重不足,也没什么人用,只能看源码了。

要想快速并高效地阅读源码,一定要有好方法,不然看着会挺费劲,当然,用什么方法取决于具体的情况。我就把自己总结的方法给大家show一下,互相交流交流:

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。

分享到:
评论

相关推荐

    Seay源代码审计工具

    Seay官方版是一款专业的Seay源代码审计工具。Seay源代码审计系统最新版支持一键自动审计、函数查询、...通过Seay源代码审计系统用户可以自定义审计规则,自定义设置参数,提高代码审计师的工作效率。适用于网络安全员

    CAD图形设计源代码

    CAD图形设计源代码,包含了绘制线\点\圆\等矢量图,是个图形编程爱好者则好代码,利用它可以设计出各种图形软件系统,提高了设计效率,不可多得啊.

    完美学校网站系统全站源代码学校网站模板下载

    高效的页面执行效率,特别优化系统安全性能,学校网站系统全站源代码学校网站模板下载,可令你在学校茫茫网海中一支独秀。学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助...

    MATLAB遗传规划工具箱程序源代码,可以大大提高编程的效率.rar

    MATLAB遗传规划工具箱程序源代码,可以大大提高编程的效率.rar

    Java源代码混淆器

    敏创Java混淆器是广州市敏创信息科技有限公司在保护自己的Java源代码过程中积累的一套实用工具,可以有效地对Java代码进行混淆,达到保护自己知识产权的目的。 工具可以去除空格,回车,注释,有效地减小Java文件...

    下载整个网页源代码的工具

    可以下载网站的源代码 很神奇的 可以下载你想要网站的静态源代码 包括css样式表、这个网站的子页面等 可以节省很多时间 提高编程效率 ,希望对大家有用

    源代码格式化SourceFormatX.rar

    SourceFormatX 是一个强大的源代码...它可以快速大批量地格式化和美化多种源代码,这将会大大加快阁下的项目进度,提高团队协同工作效率,节约大量的时间,并统一了该项目所有代码的风格,利于以后维护和发布风格统一代

    源代码自动格式化SourceFormatX

    SourceFormatX 让您敢于面对混乱的...它可以快速大批量地格式化和美化多种源代码,这将会大大加快阁下的项目进度,提高团队协同工作效率,节约大量的时间,并统一了该项目所有代码的风格,利于以后维护和发布风格统一代

    学校课程管理系统源代码

    学校课程管理系统代码。...目前大学普遍使用人工方式处理考务管理流程,过程复杂,成本较高,效率低下,为了节约管理成本,提高学校教务办公自动化水平,用智能化的手段处理考务管理,我们开发了考务管理系统。

    ssm银行业务管理系统计算机毕业设计源代码.zip

    通过JAVA技术调研和需求分析,将系统的实现划分为系统框架搭建、权限管理设计与实现、业务功能设计与实现三部分。框架搭建是整个系统的基石,为...包括程序毕设程序源代码一份,mysql数据库一份。适用于毕业设计使用。

    TI微型光伏逆变器源代码

    该配置本身具有很多优势,包括消除了部分遮光条件、提高了系统效率、提高了可靠性以及增强了模块化。对于此设计,C2000™ Piccolo™ TMS320F28035 微控制器 (MCU) 是整个逆变器的数字控制器,包括控制功率级、MPPT ...

    超实用CSS3,javascript,jquer源代码之一Jquery源代码

    超实用CSS3,javascript,jquer源代码之一jquery源代码,这是最基础的源代码,对于菜鸟来说可以做到通俗易懂。对编写代码大神来说可以很大的提高工作效率,本源代码可以直接拿来使用。

    javaswing图书馆管理系统源代码+数据库模型

    javaswing图书馆管理系统源代码+数据库模型 确保系统具有良好的系统性能,友好的用户界面。 较高的处理效率,便于使用和维护。 采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。 系统尽可能...

    sourceformat X源代码格式整理工具破解版

    它可以快速大批量地格式化和美化多种源代码,这将会大大加快阁下的项目进度,提高团队协同工作效率,节约大量的时间,并统一了该项目所有代码的风格,利于以后维护和发布风格统一代 功能: 它可以格式化 C, C++、...

    懒惰算法实现高速图像模糊(源代码)

    懒惰算法实现高速图像模糊(源代码) 懒人的算法,效率大大提高

    毕业设计-燃气收费管理系统(源代码+说明)

    1. 提高效率:系统可以自动化处理大量的数据和信息,从而减少了人工操作的时间和错误率,提高了工作效率和质量。 2. 降低成本:系统可以减少人力资源和物质资源的浪费,使企业在生产和管理上节约成本,提高企业效益...

    ssm游泳馆管理平台计算机毕业设计源代码.zip

    通过JAVA技术调研和需求分析,将系统的实现划分为系统框架搭建、权限管理设计与实现、业务功能设计与实现三部分。框架搭建是整个系统的基石,为...包括程序毕设程序源代码一份,mysql数据库一份。适用于毕业设计使用。

    JAVA+SQL办公自动化系统(源代码+论文+外文翻译).zip

    JAVA+SQL办公自动化系统(源代码+论文+外文翻译).zip 这个压缩文件包含了一个基于Java和SQL的办公自动化系统的源代码、论文和外文翻译。该系统旨在自动化各种办公任务,并提高工作流程的效率。 源代码包括Java类和...

    ssm疫情监测管理系统计算机毕业设计源代码.zip

    通过JAVA技术调研和需求分析,将系统的实现划分为系统框架搭建、权限管理设计与实现、业务功能设计与实现三部分。框架搭建是整个系统的基石,为...包括程序毕设程序源代码一份,mysql数据库一份。适用于毕业设计使用。

    FreeEIM 企业即时通讯软件源代码2010年8月份

    FreeEIM 企业即时通讯软件源代码2010年8月份 最新版资源大小:5.1MB 资源简介FreeEIM 不同于传统的C/S 模式(Client/Server 结构)的软件,它采用最新的LanIPB 技术,程序可自动查找并获取其他用户的信息,同时显示...

Global site tag (gtag.js) - Google Analytics