`
lqixv
  • 浏览: 221972 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

我读源码的一点体会

    博客分类:
  • java
阅读更多

刚才读到了一篇推荐源码阅读的文章,不禁非常佩服那位牛哥。他3年时间读了很多的源码项目,让我不禁浮想联翩。我也介绍一下我个人读源码的一点体会。

 

我自己读过的是 ant 的源码,断断续续大约读了半年时间。从中我学到了非常多的东西,里面实在太多的东西值得回味!我是这样读的,先找到ant的入口,然后从主类开始阅读(其实主类非常简单的)。然后再从点到面,细细地往下读。对于自己想深入了解的,就进入接口内部,继续往下读。阅读的时候,我发现,ant 并没有我想象中的那么复杂,而是非常简单。给我的感觉是,你只要写过一些 java 程序,估计就差不多都能读懂。ant 的程序结构非常清晰,类名、方法名写的很好,你看类名和函数名,就知道它做了什么,注释也写得不错。有时候,有一些源码比较难懂,我就把那部分代码打印出来,一边阅读,一边标注,这样慢慢的也就搞懂了。不过,我也没有读全,只读了ant 的整体构架及部分细节,很多细节没有深入研究。原因是,我对我想了解的内容基本搞清楚了,对整体构架也能看得很清楚了,没必要或不想再了解其余部分细节了。其实,读 ant 的源码给我的感觉就像在读一颗树,先读根与主干,想深入,再读树枝,再想深入,最后就可以读到树叶,整体结构非常清晰。在阅读的过程中,如果你读到某根“树枝”了,不想继续深入读里面的“枝叶”了,就可以回来继续读其他的东西,也不影响你理解整棵“树”。因为 ant 的结构组织得非常合理,注释也写的很好,就不会像盲人摸象那样,一时象根柱子,一时象堵墙。因此读起来就感觉容易很多。

 

不过那篇推荐阅读源码的文章中介绍的那位牛哥,3年竟然读了很多的源码项目,让我佩服不已!不过也让我稍感疑惑,3年真的能阅读如此多的源码项目吗?于是,我妄自猜测,他可能是精读了一些个项目,而泛读了一些项目。我觉得这才比较合理一些。不过即使如此,也让人非常佩服了。其实,我个人觉得,看源码项目不需要多,只精读一两个,就已经足够你回味无穷了!其它的,只是泛泛读一部分,也可以了。

 

我也非常推崇大家去读一两个优秀的源码项目。其实读一些优秀的源码,并没有我们想象中的那么困难。尤其是你对其工作原理了解之后,读起来就更顺手一些。因为你只要去了解,这个项目是如何实现它所要实现的那些功能的,又是如何组织这个项目的,这样去组织这个项目有什么好处等等,这就差不多了。那样读过之后,即使没有读全,都会让人有非常大的收获!对个人能力的提高是非常有帮助的。

 

一点浅见,与大家共享。

分享到:
评论
14 楼 sdtm1016 2010-12-29  
读源码,我最喜欢看的就是工具类和引用的jar包,然后放入together中,把类图顺序弄清,在纸上画出,再看附带的文档和项目附带的测试类,最后才是看源码
13 楼 yuaoi 2010-12-29  
看lz的文章,挺受益的。
不过lz也该更进一步把那个牛人兄的链接一起送上啊。嘿嘿。。。
但是,我想搜的时候了,藕断丝连反反复复搜出了不少超级有用的东西:
全都说到一部分人包括我在内的心坎去了,
祛除浮躁,建立体系迫在眉睫呢。。。
看来“网络阅读”很重要啊,真该重视起来,难怪无头苍蝇一样乱撞的,收获甚微。
我先google“3年 读源码项目”,选第二个:
http://www.iteye.com/wiki/topic/854647
然后je里的zwchen牛的文章:
网络阅读,为什么人会浮躁?
http://www.iteye.com/topic/698774
觉得讲得真好,相见恨晚的感觉。
当然zwchen牛的很多文章都是挺不错的,上次那个求职经历尤为坎坷。详细可以去看他的博客。
特此分享。



12 楼 zyongking 2010-12-29  
虽然楼主这种精神我认为非常可贵。
但是我觉得这并没有必要(个人看法)。
假如你现在需要使用一个框架,在你慢慢的使用过程中,我们应该通过在用到某一个地方的时候。如果出错我们可以进行调试这样对源码也可以有很好的理解。也可以在这点进行源码的解读。

除非你想一直研究某一个项目,或者想要在这个项目中深造,否则我觉得这样去读源码并没有太多的意义。

个人看法。
11 楼 aa00aa00 2010-12-29  
好的东西,就是应该多读读,呵呵..
10 楼 風一樣的男子 2010-12-29  
啃过前面一两个星期,后面就比较容易读了
9 楼 unika_ly12 2010-12-29  
传送门,兄弟
8 楼 parwin2 2010-12-29  
nullpoint 写道
想读源码的时候一般都是项目出问题的时候

赞同此想法,因为我工作中就是这样干的,项目出问题的时候想读源码然后解决问题。
7 楼 whaosoft 2010-12-29  
完了 我几乎不读 outman了
6 楼 nullpoint 2010-12-29  
想读源码的时候一般都是项目出问题的时候
5 楼 hjysuccess 2010-12-29  
xkorey 写道
感觉得有目的去的读源码、不能为了读源码而去读。


有目的才有动力,但是找不到目的,就不知道如何读了
4 楼 zxhDaniel 2010-12-29  
表示很想读。。。但还没开始。。
3 楼 guimingyue 2010-12-29  
据说读源码开始比较慢,读出来了就有经验了!不过这都是听大牛说的,俺还没试过
2 楼 zhangyou1010 2010-12-29  
想读hibernate的源码,但感觉还功力不够,好多看不懂。
1 楼 xkorey 2010-12-29  
感觉得有目的去的读源码、不能为了读源码而去读。

相关推荐

    微信小程序源码 语音跟读(学习版)

    微信小程序源码 语音跟读(学习版)微信小程序源码 语音跟读(学习版)微信小程序源码 语音跟读(学习版)微信小程序源码 语音跟读(学习版)微信小程序源码 语音跟读(学习版)微信小程序源码 语音跟读(学习版)微信小程序源码...

    小程序源码 语音跟读 (代码+截图)

    小程序源码 语音跟读 (代码+截图)小程序源码 语音跟读 (代码+截图)小程序源码 语音跟读 (代码+截图)小程序源码 语音跟读 (代码+截图)小程序源码 语音跟读 (代码+截图)小程序源码 语音跟读 (代码+截图)小程序源码 ...

    微信小程序源码(含截图)语音跟读

    微信小程序源码(含截图)语音跟读微信小程序源码(含截图)语音跟读微信小程序源码(含截图)语音跟读微信小程序源码(含截图)语音跟读微信小程序源码(含截图)语音跟读微信小程序源码(含截图)语音跟读微信小...

    易语言源码易语言读WAP源码.rar

    易语言源码易语言读WAP源码.rar 易语言源码易语言读WAP源码.rar 易语言源码易语言读WAP源码.rar 易语言源码易语言读WAP源码.rar 易语言源码易语言读WAP源码.rar 易语言源码易语言读WAP源码.rar

    android阅读类的APP“指读”源码.rar

    经过一段时间的Android编程学习后,写了这个比较综合的android阅读类的APP应用,附上了完整的源代码,源代码部分包括了阅读应用APP的源码,以及服务器程序,我给这个阅读小程序起名字叫做“指读”。这里的服务端数据...

    易语言源码易语言缓存HTTP读文件源码.rar

    易语言源码易语言缓存HTTP读文件源码.rar 易语言源码易语言缓存HTTP读文件源码.rar 易语言源码易语言缓存HTTP读文件源码.rar 易语言源码易语言缓存HTTP读文件源码.rar 易语言源码易语言缓存HTTP读文件源码.rar ...

    易语言源码易语言对象读网页源码.rar

    易语言源码易语言对象读网页源码.rar 易语言源码易语言对象读网页源码.rar 易语言源码易语言对象读网页源码.rar 易语言源码易语言对象读网页源码.rar 易语言源码易语言对象读网页源码.rar 易语言源码易语言对象...

    微信小程序——语音跟读(截图+源码).zip

    微信小程序——语音跟读(截图+源码).zip 微信小程序——语音跟读(截图+源码).zip 微信小程序——语音跟读(截图+源码).zip 微信小程序——语音跟读(截图+源码).zip 微信小程序——语音跟读(截图+源码).zip ...

    易语言HTTP读文件模块源码

    资源介绍:。易语言HTTP读文件模块源码例程程序调用系统wininet库的API函数实现HTTP读文件功能。点评:本源码解决了易语言命令HTTP读文件假死的情况。资源作者:。易语言知识库。资源界面:。

    易语言源码易语言读HEX文件源码.rar

    易语言源码易语言读HEX文件源码.rar 易语言源码易语言读HEX文件源码.rar 易语言源码易语言读HEX文件源码.rar 易语言源码易语言读HEX文件源码.rar 易语言源码易语言读HEX文件源码.rar 易语言源码易语言读HEX文件...

    易语言源码易语言读网页文件源码.rar

    易语言源码易语言读网页文件源码.rar 易语言源码易语言读网页文件源码.rar 易语言源码易语言读网页文件源码.rar 易语言源码易语言读网页文件源码.rar 易语言源码易语言读网页文件源码.rar 易语言源码易语言读...

    易语言源码易语言读网页框架源码.rar

    易语言源码易语言读网页框架源码.rar 易语言源码易语言读网页框架源码.rar 易语言源码易语言读网页框架源码.rar 易语言源码易语言读网页框架源码.rar 易语言源码易语言读网页框架源码.rar 易语言源码易语言读...

    基于YOLOv5的水表读数系统源码+模型+使用说明.zip

    基于YOLOv5的水表读数系统源码+模型+使用说明.zip基于YOLOv5的水表读数系统源码+模型+使用说明.zip基于YOLOv5的水表读数系统源码+模型+使用说明.zip基于YOLOv5的水表读数系统源码+模型+使用说明.zip基于YOLOv5的水表...

    易语言源码读网络时间验证易语言源码.rar

    易语言源码读网络时间验证易语言源码.rar 易语言源码读网络时间验证易语言源码.rar 易语言源码读网络时间验证易语言源码.rar 易语言源码读网络时间验证易语言源码.rar 易语言源码读网络时间验证易语言源码.rar ...

    (微信小程序毕业设计)悦读神器(源码+截图).zip

    (微信小程序毕业设计)悦读神器(源码+截图)(微信小程序毕业设计)悦读神器(源码+截图)(微信小程序毕业设计)悦读神器(源码+截图)(微信小程序毕业设计)悦读神器(源码+截图)(微信小程序毕业设计)悦读神器(源码+截图)(微信...

    Python 使用Pandas实现数据库的读、写操作 Python源码

    Python 使用Pandas实现数据库的读、写操作 Python源码Python 使用Pandas实现数据库的读、写操作 Python源码Python 使用Pandas实现数据库的读、写操作 Python源码Python 使用Pandas实现数据库的读、写操作 Python源码...

    微信小程序商城系统源码

    微信小程序 商城 (源码)微信小程序 商城 (源码)微信小程序 商城 (源码)微信小程序 商城 (源码)微信小程序 商城 (源码)微信小程序 商城 (源码)微信小程序 商城 (源码)微信小程序 商城 (源码)微信小程序 商城 (源码)...

    易语言源码易语言读文件查询快捷方式源码.rar

    易语言源码易语言读文件查询快捷方式源码.rar 易语言源码易语言读文件查询快捷方式源码.rar 易语言源码易语言读文件查询快捷方式源码.rar 易语言源码易语言读文件查询快捷方式源码.rar 易语言源码易语言读文件...

    对redis做了简化,方便理解源码,redis拥有非常漂亮的c风格的代码,值得一读 .zip

    压细节这一点非常重要,读源码,必须得有不求甚解的能力,我曾经有一段时间是这样来读源码的,如果在A函数的实现中调用了B函数,我会立马去追踪B函数干啥,如果B函数的实现中调用了C函数,我又会立马追踪C函数干啥,...

Global site tag (gtag.js) - Google Analytics