zoukankan      html  css  js  c++  java
  • 怎样阅读源代码,怎样提高阅读源代码的效率

    就我自己阅读安卓源代码的经验,本人研究过 settings,launcher,Sysupdate ,framework /services ,recovery的部分源代码。而且成功改动google留下来的bug.

    假设就是熟悉代码,不带问题的去看。看的会比較累。可是仍然是有方法能够借鉴的,事实上这种方法。也是生活经验得来的,大家都会的。

    就是从总体到局部。由总而分。

    比方:你想了解recovery的代码,就应该先了解这个Recovery的运作流程。网上有非常多人总结了,总概括图,先有个大概的了解。

    第二步,再寻找更具体的说明资料,把更为具体的方法也了解一下。

    第三步,去看源代码,看源代码的时候,注意,也是先把所有的方法名看一下。而且做下笔记。然后才细致的一个模块一个模块的看源代码。跳跃着看源代码,千万不要从上到下去看。一个 类上万行代码,所有看下来。头都大了。而且混乱。


    假设带着问题去看源代码。那效率会更高,大家都知道怎么去找源代码,找相关的方法来看。


    推荐工具:SouceInsight ,eclipse, UE,NOTEPAD++

    关键:一次就看一个点,别贪多。要有一定的基础,别像我这样,遇到一个函数又去百度,一个模块看了2个月才熟悉,才干改动。



    下面是网友推荐的好方法:

    1-----------------------------------------------------------------------------

    每一个人看源代码有他自己的方式!


    假设为了读源代码而去读源代码那么我认为你会很痛苦。 由于可能你是没有目的的去读! 一个类少则几百。多的几千行, 看下去要死人的!
    在你遇到某些问题须要跟源代码去解决的时候。源代码里面去翻你须要的那部分。这样读起来会比較轻松点, 每次遇到问题找一部分, 并且同5L说的,每次钻一个问题就钻深一点! 当然找到须要的源代码是要对源代码的结构非常了解的!


    2-----------------------------------------------------------------------------

    先要搞清楚这个类是干什么用的,

    然后搞清楚类里面的方法是干什么用的。

    提出问题。比方说这种方法是怎样实现、这个类的某个功能是怎样实现的、构造方法为什么要这样写之类的。

    然后带着问题去寻找答案。

    找到答案后再提出新的问题~

    我看代码的方式就是这种

    3-----------------------------------------------------------------------------

    方法:
    1.先了解业务;
    2.熟悉需求文档和文档。如无文档则先熟悉系统的功能和业务流程;
    3.掌握开发的技术;
    4.看代码的同一时候执行系统的相关功能。



    4-----------------------------------------------------------------------------


    要想高速并高效地阅读源代码,一定要有好方法,不然看着会挺费劲,当然。用什么方法取决于详细的情况。我就把自己总结的方法给大家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。






  • 相关阅读:
    Python 模块chardet安装 setup.py
    Windows下Python安装lxml
    intellij idea 如何更改比编辑器文本字体和大小
    [转]C#设计模式(8)-Builder Pattern
    [转]C#设计模式(4)-Simple Factory Pattern
    [转]C#委托的异步调用
    [转]浅谈C#中常见的委托
    C# 线程池
    [转]C#中的委托和事件(续)
    C#(.net)中的DllImport
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6932883.html
Copyright © 2011-2022 走看看