`
caiying0504
  • 浏览: 334607 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何通过看源码学习框架

阅读更多
出来工作一年多了,框架用了好几个,感觉还是和刚从学校出来时掌握的差不多。对框架也就是会使用而不知道其所以然,就是对错误的处理经验要强点。前辈说要进一步学习就的通过看源码,我尝试着去下载所用框架的src包,遇到问题时去看框架的源码,但好多时候发现根本看不懂,很郁闷,是基础不扎实吗,请各位过来人指点指点。
分享到:
评论
21 楼 wolfbrood 2009-01-30  
源代码是必须看的,这样能学到很多技巧和经验。
要想看懂代码,建议。
1. 你会使用这个框架,这样你以后才知道这些类是干嘛用的
2. 找到这个框架的入口,比如是怎么加载的配置文件,第一次调用的类是哪个
3. 自己写一个hello world,然后debug进去,一步一步的跟踪

等你的程序完全跑通了,而且你也知道你的hello world,那么你对这个框架就有很好的理解了。后面的代码看起来就容易很多
20 楼 wmteo77 2009-01-30  
类图肯定要看的了,还要熟悉程序执行过程
19 楼 aidiyuxin 2008-07-24  
寻找出路的苍蝇 写道
Joard 写道
光看源代码是没太大作用的
尤其是想通过看源代码来提高自己的实力来说,极为不划算。
倒不如无视“轮子说”,自己动手写一个,然后和知名开源框架比较一下
发现自己的不足,看看别人是怎么设计与实现的,然后自己为什么没想到?该如何改?
然后,在来想一想这些知名开源框架的设计有什么好处?从那方面来支持开闭原则?是否易于扩展?那么自己写的这个呢?
自己在写这个“重复的轮子”的之后那些地方是难点或者没有太成型的想法?知名开源框架是怎么实现这些难点的?他们的想法又是什么呢?
记得ajoo牛淫也曾经发表过类似的观点,由于潜水太久了忘记具体哪个帖子了。

如果嫌自己动手写麻烦的话,最起码也应该做到带着问题去看源代码,至于是那种问题就得按自己的需要来思考了。

不然,光记得这个类是调用那个类,几个类之间的关系,实无太大必要。与其这样“表面”的看源代码,还不如仔细去浏览浏览api文档。

个人建议,纯属一个菜鸟之言。

同志,你有没有自己试过自己提的建议?自己写一个框架,开玩笑吧?框架的思想我们一般都能理解,但想自己去实现,几乎是不可能的,那些底层的东西很难做的,比如事务处理,比如缓存。。。Spring早就出来了,有谁没事能随便整个Spring第二出来?
赞同看UML。。。不一定要Rose那么专业的东东,MyEclipse自带的UML插件就行。。。


晕,难?无非是类反,加动态代理,加使用下jvm中的编译器开辟一块缓存。。。
我就写过一个,随说不太完善,但是也能用
可以动手试试,要有亮剑精神嘛,对不?
哈哈
18 楼 ray_linn 2008-05-05  
就是真想写,写个Spring微缩版也是不难的。偶最近正在瞅Spring.net的码,目标很简单,偶要用Cecil替代它的Reflection.Emit.
17 楼 抛出异常的爱 2008-05-04  
akane 写道
寻找出路的苍蝇 写道
同志,你有没有自己试过自己提的建议?自己写一个框架,开玩笑吧?框架的思想我们一般都能理解,但想自己去实现,几乎是不可能的,那些底层的东西很难做的,比如事务处理,比如缓存。。。Spring早就出来了,有谁没事能随便整个Spring第二出来?
赞同看UML。。。不一定要Rose那么专业的东东,MyEclipse自带的UML插件就行。。。


没你认为的难度这么夸张

同意uncle的

写框架难么?
我看难的是写个瑞士军刀式的spring吧。
16 楼 akane 2008-05-04  
寻找出路的苍蝇 写道
同志,你有没有自己试过自己提的建议?自己写一个框架,开玩笑吧?框架的思想我们一般都能理解,但想自己去实现,几乎是不可能的,那些底层的东西很难做的,比如事务处理,比如缓存。。。Spring早就出来了,有谁没事能随便整个Spring第二出来?
赞同看UML。。。不一定要Rose那么专业的东东,MyEclipse自带的UML插件就行。。。


没你认为的难度这么夸张

同意uncle的
15 楼 dennis_zane 2008-05-04  
自己写框架怎么不现实,没做过你怎么知道不可能
14 楼 caiying0504 2008-05-04  
自己目前使用的方法是通过自己用到的框架中提供的方法去追踪源码,看看框架源码是怎么实现这个方法。但发现这种方法的效果不好。请大家指点指点
13 楼 caiying0504 2008-05-04  
先感谢大家的建议
个人觉得自己写框架之说对自己来说不现实
debug也是经常用的,但没有追踪到框架的源码中去,谢谢大家的建议我会试试
如果大家还有啥其他的经验不妨多多赐教,谢谢
12 楼 hgq0011 2008-05-01  
可以先知道框架的原理,然后把源代码加入自己的项目中,在源代码中加入自己调试的输出语句.也就是知道某个类某个方法起到了什么作用.
11 楼 kayoo 2008-05-01  
看源码的驱动力是什么呢 ?
手上有本书 一个月了还没看完
10 楼 yanyanlong 2008-04-30  
euml (一个eclipse插件.看类结构的)

debug (看执行顺序)
 
9 楼 yuan 2008-04-30  
deleted
8 楼 kjhot 2008-04-30  
多debug,在不清楚调用顺序时抛出异常,将堆栈信息打出,可以得到调用顺序。
7 楼 ray_linn 2008-04-30  
downpour 写道
使用Source Attach功能,在你使用这些框架的时候,debug到源码去,看看你的程序在框架中是如何走的。



生成UML图通常没什么用。

1.先找到你要关注的入口点。
2.画出类间调用的主线。
3.写上注释。
4.不明白的地方用debug查看
6 楼 downpour 2008-04-30  
使用Source Attach功能,在你使用这些框架的时候,debug到源码去,看看你的程序在框架中是如何走的。
5 楼 ray_linn 2008-04-30  
多看自然就看得懂,就跟学英文一个道理。
4 楼 庄表伟 2008-04-30  
我的经验是,提升自己debug的能力,然后调试执行某某框架,一步一步的跟进去。
3 楼 寻找出路的苍蝇 2008-04-30  
Joard 写道
光看源代码是没太大作用的
尤其是想通过看源代码来提高自己的实力来说,极为不划算。
倒不如无视“轮子说”,自己动手写一个,然后和知名开源框架比较一下
发现自己的不足,看看别人是怎么设计与实现的,然后自己为什么没想到?该如何改?
然后,在来想一想这些知名开源框架的设计有什么好处?从那方面来支持开闭原则?是否易于扩展?那么自己写的这个呢?
自己在写这个“重复的轮子”的之后那些地方是难点或者没有太成型的想法?知名开源框架是怎么实现这些难点的?他们的想法又是什么呢?
记得ajoo牛淫也曾经发表过类似的观点,由于潜水太久了忘记具体哪个帖子了。

如果嫌自己动手写麻烦的话,最起码也应该做到带着问题去看源代码,至于是那种问题就得按自己的需要来思考了。

不然,光记得这个类是调用那个类,几个类之间的关系,实无太大必要。与其这样“表面”的看源代码,还不如仔细去浏览浏览api文档。

个人建议,纯属一个菜鸟之言。

同志,你有没有自己试过自己提的建议?自己写一个框架,开玩笑吧?框架的思想我们一般都能理解,但想自己去实现,几乎是不可能的,那些底层的东西很难做的,比如事务处理,比如缓存。。。Spring早就出来了,有谁没事能随便整个Spring第二出来?
赞同看UML。。。不一定要Rose那么专业的东东,MyEclipse自带的UML插件就行。。。
2 楼 Joard 2008-04-30  
光看源代码是没太大作用的
尤其是想通过看源代码来提高自己的实力来说,极为不划算。
倒不如无视“轮子说”,自己动手写一个,然后和知名开源框架比较一下
发现自己的不足,看看别人是怎么设计与实现的,然后自己为什么没想到?该如何改?
然后,在来想一想这些知名开源框架的设计有什么好处?从那方面来支持开闭原则?是否易于扩展?那么自己写的这个呢?
自己在写这个“重复的轮子”的之后那些地方是难点或者没有太成型的想法?知名开源框架是怎么实现这些难点的?他们的想法又是什么呢?
记得ajoo牛淫也曾经发表过类似的观点,由于潜水太久了忘记具体哪个帖子了。

如果嫌自己动手写麻烦的话,最起码也应该做到带着问题去看源代码,至于是那种问题就得按自己的需要来思考了。

不然,光记得这个类是调用那个类,几个类之间的关系,实无太大必要。与其这样“表面”的看源代码,还不如仔细去浏览浏览api文档。

个人建议,纯属一个菜鸟之言。

相关推荐

Global site tag (gtag.js) - Google Analytics