`
caiying0504
  • 浏览: 343117 次
  • 性别: 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文档。

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

相关推荐

    微信小程序源码 框架(学习版)

    微信小程序源码 框架(学习版)微信小程序源码 框架(学习版)微信小程序源码 框架(学习版)微信小程序源码 框架(学习版)微信小程序源码 框架(学习版)微信小程序源码 框架(学习版)微信小程序源码 框架(学习版)微信小程序...

    MYQQA 框架开源源码.rar

    MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架...

    tensorflow实战google深度学习框架源码

    这些知识点贯穿于《Tensorflow实战Google深度学习框架源码》的第3章至第10章,通过实践这些章节的代码,你可以逐步掌握Tensorflow的使用,从基本操作到高级应用。无论是初学者还是有一定经验的开发者,都能从中...

    入门级RPC框架源码学习

    本资源是针对入门级RPC框架的源码学习,包含了学习过程中的一些流程图,对理解RPC的工作原理和实现机制非常有帮助。 首先,我们来看看“mongo”这个标签,它通常指的是MongoDB,一个流行的NoSQL数据库。在RPC框架中...

    caffe源码——深度学习框架

    《Caffe深度学习框架详解——源码解析及接口应用》 Caffe,全称为Convolutional Architecture for Fast Feature Embedding,是由Berkeley Vision and Learning Center(BVLC)开发的开源深度学习框架,以其高效、...

    C#.NET通用开发框架源码2017

    开发者提供一个有利于学习、快速开发高性能软件的框架,此框架对所有源码开放。 十分具有 学习价值,值得推荐一下,感兴趣的朋友们不要错过哦。 二、功能介绍 CH:代码生成层。 Common:公用代码层。 DB...

    SpringCloud微服务框架学习源码

    本项目包含一整套SpringCloud微服务框架学习的源码,有兴趣的同学可以结合本人的博客文章系统的学习怎样实现一个微服务框架的搭建,内容包括Eureka服务的注册发现及Eureka集群的实现、客户端负载均衡Ribbon、接口式...

    SSH框架搭建源码

    通过这个SSHdemo,你可以一步步学习如何配置和集成这三个框架,理解它们之间的协作方式,为实际的项目开发打下基础。配合提供的博客地址,可以获取更详细的步骤解释和问题解答,加深对SSH框架的理解。

    delphi DLL插件框架源码

    总结,Delphi DLL插件框架提供了软件模块化设计的有效手段,通过源码学习,开发者不仅可以提升Delphi编程技能,还能深入理解Windows系统下DLL的工作原理和插件化开发模式。无论是对于个人项目还是企业级应用,这种...

    SSH框架整合项目源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。...通过这个项目,你可以从实践中学习到SSH框架的整合技巧,为将来更复杂的Java Web开发打下坚实的基础。

    SSH2框架搭建实例源码

    这个实例源码使用的是Spring 3.2、Struts2 2.3.4和Hibernate 4.2这三个框架的较新版本,提供了一个基础的用户登录和用户管理功能的实现。下面我们将详细探讨这些技术及其在项目中的应用。 **Spring框架**: Spring...

    abp框架源码

    ABP(ASP.NET Boilerplate)框架是一个开源的、基于.NET平台的应用程序开发框架,它提供了模块化、分层架构和企业级应用的基础。...同时,通过分析源码,你还能学习到优秀的设计模式和最佳实践,提高自己的编程能力。

    java源码课件框架学习

    例如,通过分析Spring框架的源码,我们可以学习到如何设计和实现一个强大的、可扩展的框架。同时,课件中的实例和练习将巩固理论知识,提升实际操作能力。 总的来说,Java源码课件框架学习是一条深入Java开发的路径...

    myqq框架详解讲解付源码成品

    4. **源码分析**:附带的源码成品可以帮助开发者深入理解框架的工作原理,查看其实现细节,有助于学习和优化自己的代码。 5. **开发示例**:可能包含一些示例项目或教程,展示如何快速入门和使用myqq框架,这对于...

    后台完整框架源码

    通过研究和实践这个“后台完整框架源码”,你可以深入理解PHP框架的工作机制,提升你的编程技能,同时也可以根据项目需求对其进行调整和优化。无论是新手还是经验丰富的开发者,这样的资源都能提供宝贵的学习和参考...

    基于Java的Spring框架源码学习项目设计源码

    本项目为“基于Java的Spring框架源码学习项目设计源码”,包含52个文件,其中包括43个Java源文件、3个XML配置文件、2个文本文件、1个Gitignore忽略配置文件、1个LICENSE许可文件、1个Markdown文档以及1个Groovy脚本...

    NFine开源框架源码与文档

    通过深入研究其源码和文档,开发者不仅可以提升.NET开发技能,还能掌握一套成熟的开发框架,从而提高项目的质量和效率。无论是新手还是经验丰富的开发者,都能从中受益。对于初次接触NFine的开发者,建议先阅读文档...

    H+ 框架源码

    《深入剖析H+框架源码》 H+框架,作为一个高效、灵活的前端开发框架,深受开发者喜爱。它集成了现代Web开发的诸多特性,旨在...深入学习H+框架源码,不仅能提升开发技能,也能更好地理解和运用前端开发的最佳实践。

    深度解析:如何通过源码学习提升技术功底与快速掌握新技术框架

    【深度解析:如何通过源码学习提升技术功底与快速掌握新技术框架】 源码学习是技术进阶的重要途径,它能帮助我们理解技术框架的内在原理,提升我们的技术功底,快速掌握新技术,并能有效应对线上问题和面试挑战。...

    cpp-darknet深度学习框架源码分析详细中文注释涵盖框架原理与实现语法分析

    《cpp-darknet深度学习框架源码分析》 cpp-darknet是一个基于C++的深度学习框架,专注于速度和效率,尤其适合于嵌入式系统和实时应用。本资料将深入探讨cpp-darknet的源码,通过详细中文注释帮助读者理解框架的原理...

Global site tag (gtag.js) - Google Analytics