zoukankan      html  css  js  c++  java
  • 如何阅读java项目的源代码


    1、最好了解UML语言;
    2、了解代码大致结构,再根据模块详细去看,效果会好一些。
    3、每天敲上1千行。。就可以了。。。习惯了就好了。。。慢慢来。。。  

    比如说 你看书看累了 写个小程序放松下(一般别人是玩游戏放松)- -这样你就可以了解你要看的代码的功能和所用的框架技术,这样在熟悉的基础上就能得心应手了。

    不过,我可不相信什么一天敲多少行的代码,你要有目的性的敲,有目的性的敲10行比没目的性的敲100行还有用。什么是有目的性的就要你自己去摸索了。
    最后给你提醒下,千万不要相信什么好的程序员要敲几十万行或几百万行的代码,没用,都是屁话,你要有知识进去才有用。
    如果对所看的领域不熟悉,可以试着分解项目,找出真正不懂的部分,对比以前的知识储备对比着看

    先从整体着手。了解整体框架。再着眼每个细节。

    4、先看整体结构,把握思路理解类的作用,然后有必要的话再琢磨细节。
    5、先随便拿本java入门书看完,书上的例子照着做完,哪怕抄,要都能理解,然后开始去找例子,先从最小的例子开始看,然后自己写,然后自己加一些自己的想法,有了这些基础再去看别人写的例子,去了解别人的思想,然后转换成自己的,慢慢的你会进步非常的神速。

    6、首先要使用帮助分析代码框架的工具,如VC中的class view。我认为这样至少可以减少初看长代码者的很多麻烦,方便熟悉代码的基本框架。

    然后是要带着问题去看,借助上述对框架的理解就比较容易能找到一些感兴趣的代码段,此时就可以细细品位了。


    7、阅读代码起初不是件容易的事,要先选点代码量不大且自己较能理解的代码来练习阅读能力。一开始就拿个LINUX内核那样的“天书”来,我相信不是每个凡人都能轻易看懂的。
    8、学习 源代码 很是枯燥,我也看一些源代码,特别是一个一个文件的查看,最后,我发现,要想快速了解像jdk,tomcat,hibernate这样的源代码,必须得借助工具,首相从整体出发,了解整体框架,然后,在注重细节,我推荐使用Rose,powerdesign 或者source insight 都可以啊
    9、先找到main函数,然后一个个接着看 


    10、教教你怎么看源代码吧

    1.这是什么项目的源代码?
    (再没有文档这个总是有的吧?哪怕是个代号)
    2.这个项目的性质
     (B/S还是C/S,用的什么编程语言,用的行业细分,规模)
    3.源代码的规模
      有多少行(其中有多少行是注释),总共有多少个文件(每一类文件分别有多少个,每个文件是多少行)
      如果是面向对象的,有多少个class,如果是面向过程的有多少个function
    4.功能的详细整理
      功能列表
      函数名   功能   功能描述
      (没有注释不要紧,函数名总是有的吧,功能你认为是什么就填什么)
    5.功能模块之间的关系
      (哪怕没有注释,按名称,调用关系一定能整理清楚)
    如果你把我上面列的5点搞清楚了,再来抱怨,我想应该是下面这个样子:

    如果这个代码能够运行,你可以先让它运行起来,这样直观一些。 
    如果不能运行,我相信源码一定会在某种程度上告诉你这个源码是做什么的,哪怕没有任何文档和注释,相信我,一定比混淆后的代码容易看懂。 


    还有,这些源码调用的最基本的API都是有文档的。 
    例如不知道a是做什么的,但知道a调用了b,b调用了写文件的api, 
    你可以暂时这样理解,a做的某一件事就是调用b写文件。 


    等你对这些a,b,c之间的关系了解得越来越多之后,实现原理也就基本清楚了。 


    也有可能代码用了一个比较复杂的算法,并没有在旁边写上这个算法的名字(如果有名字,肯定是一个很大的帮助),碰巧这个算法你没有用过,这时你可以把这段程序的步骤用文字描述出来。


    -----------------------------------------------------------------------------------------------------------综合自己查找的资料。----------------------------------------------------------------------------------------------

  • 相关阅读:
    Linux常用命令
    jQuery
    NPM 常用命令
    Linux中mkdir和touch命令区别
    linux下cat命令详解
    时间
    es5中foreach的用法
    简单的下拉框制作
    window内置对象学习
    [Leetcode]5.Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/zhujianxipan/p/3146919.html
Copyright © 2011-2022 走看看