分析java源代码/开源框架源码的思路?
2016-04-18 11:19
543 查看
讨论下大家分析源代码的思路,遇到源代码是怎样去分析的?
我的思路基本是这样的:
1.弄清楚这个框架 是做什么用的。分解功能
2.分解功能出来后,针对每个功能画出类框架图
3.找到功能入口,然后分析每个方法
有个疑惑:在分析方法的过程中,方法链会调用的很长很长,如果跟踪这个方法链会很累,到最后会弄得很迷惑,不知大家有什么好的办法。
一般不会刻意找个框架去分析,我觉得最好的方式就只在使用中出现问题,或者想了解为什么框架能够这么实现,然后一步步debug跟踪代码,比如一个变量是怎么转变的。当然如果需要真正了解框架,尤其是优秀的框架,设计模式的基础比如要有的。
楼主说的很多类图,其实如果你了解,一般就是些设计模式的具体实现。
先搞明白是用来解决什么问题的?然后思考是如何进行设计的?关键的一点,如果换成是自己来设计,会怎么做?对比两者的差异。最后,功能模块分解,各个击破~~
我的思路基本是这样的:
1.弄清楚这个框架 是做什么用的。分解功能
2.分解功能出来后,针对每个功能画出类框架图
3.找到功能入口,然后分析每个方法
有个疑惑:在分析方法的过程中,方法链会调用的很长很长,如果跟踪这个方法链会很累,到最后会弄得很迷惑,不知大家有什么好的办法。
一般不会刻意找个框架去分析,我觉得最好的方式就只在使用中出现问题,或者想了解为什么框架能够这么实现,然后一步步debug跟踪代码,比如一个变量是怎么转变的。当然如果需要真正了解框架,尤其是优秀的框架,设计模式的基础比如要有的。
楼主说的很多类图,其实如果你了解,一般就是些设计模式的具体实现。
先搞明白是用来解决什么问题的?然后思考是如何进行设计的?关键的一点,如果换成是自己来设计,会怎么做?对比两者的差异。最后,功能模块分解,各个击破~~
相关文章推荐
- Java print流生成日志信息
- Java print流
- 关于struts2种的action运行两次,或多次,或反复运行的bug
- Java 数据流
- 最大最小公倍数 java 蓝桥杯
- Java 转换流
- 在Eclipse中全局替换图片
- java常用算法之两个有序list的合并
- java 对日期的操作
- Java HashSet
- Myeclipse和FlashBuilder的集成
- Java Enum(获得特定值之一)
- 【Spring实战】—— 11 通过AOP为特定的类引入新的功能
- Java 递归获得文件目录
- java性能优化 –gc日志收集与分析
- java性能优化 –gc日志收集与分析
- 跟Tom学spring4 helloworld
- Java File创建文件复制文件
- Eclipse+Maven搭建Wbe项目(1)
- 堆排序