记得在开源流行之前,我看过的代码紧限于所参与的项目,能有个几万行就不错哩。后来很多优秀开源项目都相继蹦出来了,阅读的代码量那叫一个大呀!不得不看。我现在掉到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。
分享到:
相关推荐
【标题】:SOC系统源代码 【描述】: SOC(System on Chip)系统源代码是电子工程领域中一种集成度极高的技术,它将整个计算机系统的关键组件,如处理器、内存、外设接口等,集成在单一芯片上。这份源代码集合可能...
### 源代码与技术文档管理制度 #### 一、总则 - **目的**: 为了保障公司的源代码和开发文档的安全性,确保源代码的完整性,制定...同时,通过对各个环节的规范化管理,也提高了工作效率,降低了因管理不当导致的风险。
总的来说,这款“软著源代码整理工具”为开发者提供了方便,能够有效地整理和优化源代码,使之更适合提交到软件著作权申请过程中,同时减轻了手动整理的工作量,提高了效率。对于需要申请软著的个人或团队来说,这是...
【腾讯微博源代码】是一个对Android平台上微博应用开发感兴趣的开发者极具价值的学习资源。这个源代码提供了腾讯微博客户端的实现细节,让开发者有机会深入理解大型社交应用的架构设计、功能实现以及性能优化。通过...
第六,我们需要从多个方面对源代码进行深入分析,例如入口构造、页面调用方式、工具类和工具函数、模板引擎、系统功能模块、设计模式、访问压力、执行效率和数据库查询的优化等。这一步骤能够帮助我们学习到源代码的...
《奇迹GAMESERVER源代码》是一份用于构建和管理网络游戏服务器的重要资源,尤其对于那些对“奇迹”游戏系列有深入研究或开发需求的开发者来说,它具有极高的价值。源代码是软件开发的基础,它揭示了游戏服务器运行的...
小米官网源代码是一个供开发者和爱好者研究学习的资源,它揭示了小米官方网站的构建方式、设计思路和技术实现。通过对源代码的研究,我们可以深入了解前端开发、响应式设计、用户体验优化以及网站性能提升等多个方面...
8. **文档阅读**:源代码通常会附带详细的文档,学习如何有效地阅读和理解这些文档是获取代码知识的关键步骤。 压缩包中的"源代码使用说明.pdf"很可能是详细阐述以上各点的指南,涵盖了从基本概念到高级应用的各个...
通过阅读这部分源代码,我们可以了解如何处理DOS特定的系统调用,以及如何生成与DOS兼容的目标代码。 Z80是一种广泛应用于嵌入式系统的8位微处理器,Small C for Z80则是针对这种处理器的C语言编译器。Z80的源代码...
对于Windows用户,Source Insight等代码阅读和分析工具可以帮助跟踪代码间的引用关系,提供语法高亮、代码跳转等功能,极大提高了阅读效率。此外,Git等版本控制工具也是管理源代码和查看历史变更的重要辅助工具。 ...
LISP源代码的阅读和理解需要一定的编程基础,尤其是对LISP语言的理解。源代码通常包括函数定义、条件判断、循环控制、数据结构操作等元素。在实际应用中,开发者可能还需要结合CASS的文档和示例代码来学习和调试这些...
《深入探索Visual Studio Code与.NET Framework 4.6.1源代码》 Visual Studio Code(简称VS Code)...通过解构和理解这些源代码,我们可以更好地理解和利用这些工具,提高开发效率,创建出更加优秀和健壮的软件产品。
这些类库是Java程序的基础,通过阅读源代码,我们可以了解到诸如字符串操作、集合框架、I/O流等基本功能的实现原理。 2. **并发编程**:JDK 1.6引入了`java.util.concurrent`包,提供了高级并发工具,如`...
阅读 PHP 源代码的技巧和方法 PHP 技术的快速进步,最好的途径就是...阅读 PHP 源代码的技巧和方法可以提高自己的编程功力和驾驭代码的能力,对于改进自己的编程技巧和编写高效、可读、可维护的代码具有重要的意义。
《电驴源代码解析与应用探索》 电驴,全称eDonkey2000,是一款著名的P2P(peer-to-peer)文件共享软件,它允许用户在全球范围内分享文件,包括音乐、电影、软件等。电驴源代码是这款软件的核心组成部分,对于开发者...
- **提高效率**:在团队协作中,使用同一工具整理源代码,可以保持一致性,提高团队的工作效率。 - **降低错误率**:人工整理可能出现遗漏或错误,而工具的使用则能减少这种风险。 对于想要申请软件著作权的个人或...
这份制度旨在确保公司的产品研发和项目实施过程中,源代码和文档的有效控制,提高整体工作效率。 制度首先明确了【总则】,指出源代码及文档管理的总控制部门是研发院,各事业部需指定专人负责本部门的源代码和文档...
ART采用预编译技术,提高了应用的执行效率。源代码揭示了类加载、垃圾回收等过程。 5. **库与服务**:Android系统包含大量开源库,如SQLite用于数据存储,OpenGL ES用于图形渲染,WebKit用于浏览器等。同时,系统...
4. **源码实现**:源代码的编写要考虑实时性、稳定性与效率。例如,使用中断处理串口接收,确保数据的及时响应;使用定时器进行周期性任务调度;优化数据结构和算法,提高处理速度;同时,良好的错误处理机制也是...
利用IDE(集成开发环境)、调试工具和代码分析工具可以大大提高阅读源代码的效率。这些工具可以帮助我们快速定位代码中的函数、变量、类等元素,以及它们之间的关系。例如,代码高亮显示、代码导航、自动完成等IDE...