`
West_Link
  • 浏览: 2185 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多

  记得在开源流行之前,我看过的代码紧限于所参与的项目,能有个几万行就不错哩。后来很多优秀开源项目都相继蹦出来了,阅读的代码量那叫一个大呀!不得不看。我现在掉到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。

1
1
分享到:
评论

相关推荐

    SOC 系统 源代码

    【标题】:SOC系统源代码 【描述】: SOC(System on Chip)系统源代码是电子工程领域中一种集成度极高的技术,它将整个计算机系统的关键组件,如处理器、内存、外设接口等,集成在单一芯片上。这份源代码集合可能...

    源代码、技术文档管理制度

    ### 源代码与技术文档管理制度 #### 一、总则 - **目的**: 为了保障公司的源代码和开发文档的安全性,确保源代码的完整性,制定...同时,通过对各个环节的规范化管理,也提高了工作效率,降低了因管理不当导致的风险。

    软著源代码整理工具

    总的来说,这款“软著源代码整理工具”为开发者提供了方便,能够有效地整理和优化源代码,使之更适合提交到软件著作权申请过程中,同时减轻了手动整理的工作量,提高了效率。对于需要申请软著的个人或团队来说,这是...

    非常好的源代码阅读工具

    源代码阅读工具是软件开发过程中不可或缺的辅助工具,它们帮助开发者理解、学习和分析已有的代码库,提高工作效率。InsightSetup.exe很可能是一款名为Insight的源代码阅读器的安装程序。在这里,我们将深入探讨源...

    腾讯微博源代码

    【腾讯微博源代码】是一个对Android平台上微博应用开发感兴趣的开发者极具价值的学习资源。这个源代码提供了腾讯微博客户端的实现细节,让开发者有机会深入理解大型社交应用的架构设计、功能实现以及性能优化。通过...

    如何阅读php源代码.docx

    第六,我们需要从多个方面对源代码进行深入分析,例如入口构造、页面调用方式、工具类和工具函数、模板引擎、系统功能模块、设计模式、访问压力、执行效率和数据库查询的优化等。这一步骤能够帮助我们学习到源代码的...

    奇迹GAMESERVER源代码

    《奇迹GAMESERVER源代码》是一份用于构建和管理网络游戏服务器的重要资源,尤其对于那些对“奇迹”游戏系列有深入研究或开发需求的开发者来说,它具有极高的价值。源代码是软件开发的基础,它揭示了游戏服务器运行的...

    小米官网源代码

    小米官网源代码是一个供开发者和爱好者研究学习的资源,它揭示了小米官方网站的构建方式、设计思路和技术实现。通过对源代码的研究,我们可以深入了解前端开发、响应式设计、用户体验优化以及网站性能提升等多个方面...

    源代码使用说明_PowerPC;源代码使用_

    8. **文档阅读**:源代码通常会附带详细的文档,学习如何有效地阅读和理解这些文档是获取代码知识的关键步骤。 压缩包中的"源代码使用说明.pdf"很可能是详细阐述以上各点的指南,涵盖了从基本概念到高级应用的各个...

    c语言编译器源代码

    通过阅读这部分源代码,我们可以了解如何处理DOS特定的系统调用,以及如何生成与DOS兼容的目标代码。 Z80是一种广泛应用于嵌入式系统的8位微处理器,Small C for Z80则是针对这种处理器的C语言编译器。Z80的源代码...

    Linux内核源代码的阅读及相关工具介绍

    对于Windows用户,Source Insight等代码阅读和分析工具可以帮助跟踪代码间的引用关系,提供语法高亮、代码跳转等功能,极大提高了阅读效率。此外,Git等版本控制工具也是管理源代码和查看历史变更的重要辅助工具。 ...

    cass扩展工具lisp源代码

    LISP源代码的阅读和理解需要一定的编程基础,尤其是对LISP语言的理解。源代码通常包括函数定义、条件判断、循环控制、数据结构操作等元素。在实际应用中,开发者可能还需要结合CASS的文档和示例代码来学习和调试这些...

    Visual Studio Code 源代码(.net).7z

    《深入探索Visual Studio Code与.NET Framework 4.6.1源代码》 Visual Studio Code(简称VS Code)...通过解构和理解这些源代码,我们可以更好地理解和利用这些工具,提高开发效率,创建出更加优秀和健壮的软件产品。

    jdk 1.6 源代码一

    这些类库是Java程序的基础,通过阅读源代码,我们可以了解到诸如字符串操作、集合框架、I/O流等基本功能的实现原理。 2. **并发编程**:JDK 1.6引入了`java.util.concurrent`包,提供了高级并发工具,如`...

    如何阅读php源代码.pdf

    阅读 PHP 源代码的技巧和方法 PHP 技术的快速进步,最好的途径就是...阅读 PHP 源代码的技巧和方法可以提高自己的编程功力和驾驭代码的能力,对于改进自己的编程技巧和编写高效、可读、可维护的代码具有重要的意义。

    电驴源代码 电驴的源代码,可以作为参考

    《电驴源代码解析与应用探索》 电驴,全称eDonkey2000,是一款著名的P2P(peer-to-peer)文件共享软件,它允许用户在全球范围内分享文件,包括音乐、电影、软件等。电驴源代码是这款软件的核心组成部分,对于开发者...

    Android 4.2.2源代码

    ART采用预编译技术,提高了应用的执行效率。源代码揭示了类加载、垃圾回收等过程。 5. **库与服务**:Android系统包含大量开源库,如SQLite用于数据存储,OpenGL ES用于图形渲染,WebKit用于浏览器等。同时,系统...

    PLC 底层源代码

    4. **源码实现**:源代码的编写要考虑实时性、稳定性与效率。例如,使用中断处理串口接收,确保数据的及时响应;使用定时器进行周期性任务调度;优化数据结构和算法,提高处理速度;同时,良好的错误处理机制也是...

    如何读懂源代码!如何分析源代码方法!

    利用IDE(集成开发环境)、调试工具和代码分析工具可以大大提高阅读源代码的效率。这些工具可以帮助我们快速定位代码中的函数、变量、类等元素,以及它们之间的关系。例如,代码高亮显示、代码导航、自动完成等IDE...

    小型发动机ECU源代码(MC9S12P128)

    3. 软件架构优化:理解并优化源代码的模块化结构,可以提高代码可读性和维护性。 4. 调试工具:使用如IAR Embedded Workbench或CodeWarrior等IDE进行代码编辑、编译和调试。 5. 安全性考量:在修改ECU软件时,需...

Global site tag (gtag.js) - Google Analytics