自己看源码的一些方法和心得分享

步骤

先清楚宏观: 干什么的,功能是什么

再研究微观: debug一行行功能

之后图解: 分析原理,转换为容易理解的方式

最后提炼心得: 一定要总结一下看了源码有什么收获,尤其是设计思想和写代码的优雅方法(很重要)

个人心得:

debug前的准备

  1. 一直点容易点懵,就行迷路一样,分岔路口太多了,典型的比如spring,但是spring是按照接口设计打造的,说白了就像房子时按照图纸建造的一样
  2. 首先把所有接口弄懂,搞清楚这个接口定义了哪些方法和功能,然后再看具体实现类,抽象类以及其子类等,这些类大都继承了接口.
  3. 就好比先看一下楼盘的设计图纸,这样你拿着图纸,到了哪个地方,你就知道这个地方是哪是怎么设计的,接下来想去哪该怎么走!!很有效
  4. 弄懂之后再debug一行一行看代码,这个时候看到那个代码或者方法就会知道是哪个接口定义的,想要实现什么功能
    思路就很清晰,好比你手里有张地图,走到哪里都不怕,都知道这是哪里,接下来该怎么走,可以怎么走!!

不要期待一下子全弄懂

  1. 举个例子,比如我看String类的时候里面涉及了很多其他类的知识,最简单的流就比如 Integer.valueOf() 方法,
    这些类里面又调用了其他的设计实现,那么这个时候可以先放一放,等你后面弄懂了Integer类之后你再回来看这里就一下子就懂了,没必要现在一下子就非得弄懂
    这样子会打乱你的节奏,造成三天打鱼两天晒网的效果,还是按自己的计划,一个一个系统的来!

当然前期工作也得准备充分

  1. 举个例子吧,String里面涉及了很多Unicode的知识,比如高代理,低代理,位移8位操作,10位操作等等,如果对Unicode和 UFT-16这些编码不了解的话,那么是无法看懂的,所以这些前提知识是必须要掌握的
  2. 再比如spring用了很多设计模式,单例,工厂,组合,装饰,代理等等,这些设计模式如果都不清楚的话,那么刚开始看肯定是比较吃力的,所以看之前一定要有基本功,才能达到预习的效果,事半功倍!

坚持最重要

  1. 不能一会搞这个一会搞那个,这个可能是最难办到的事情了,因为实际生活中,都很忙,所以就得自己想办法,提升学习效率,因为时间有限,别人学习一小时跟你学习一小时,很可能效率是完全不一样的
    这样那些效率高的人就完全会把你甩在身后, 所以我的一条建议就是--- 一定要记笔记!!!!
  2. 笔记很重要,博客也好,自己的笔记本也好,反正一定要精简,凝练,除非你过目不忘!否则笔记这东西很有用,而且还有一点,一定要摸索出有效的记笔记方法,避免浪费大量时间! 这就好比,我学习不就行了,但是学习不一定进步,跟方法有很大关系
    有的时候学习反而会让你进步不了也玩不好,白白浪费时间,所以找到好方法很重要,我这个笔记也是上大学时候就开始了,摸索了好一阵子,才慢慢找到适合自己的方式,包括开始记得笔记很繁琐,后面就开始重点化,凝练化

多反思,多向别人取经

  1. 多问问自己这个月和下个月有什么变化,理论上说百分之99的人都不会有这个问题,我其实也不会问,但是这是一个理想的目标吧
    简单的做法就是记录日记,这样不会忘记上个月我每天都在干什么,对比一下,我有进步吗,这样

  2. 还有一点,看看那些优秀的人在学什么,怎么学习的,很多时候能纠正自己的方向!
    做事要专注一点吧,该玩的时候玩,该学习的时候就学习!

  3. 当然还有一点是一定要有自己的习惯与计划,不能别人干什么我也干什么,这样试最累的,就比如你看同事学习,你很慌,你也在学习,这个时候你是被动的,一旦同事不学习了,你也就不学习了,这样其实很不好
    你自己没有主动权,一定要有自我意识,比如我就计划那天晚上干什么,到了那天我就干什么,即使别人在玩或者在学习也影响不了我!
    我曾经就很受别人影响,所以现在基本都是自己一个人租房子了,舒服多了,有适合自己的习惯与计划!!!!

交流

最后,学习其实不一定有用,也可能你到了35岁甚至还不如那些没学习的人混得好,但是你装在肚子里的知识是受用终身的,一句话,反正没坏处!!!
当然什么时候都是身体第一,健康永远最重要,学习也要适可而止,该追剧玩游戏的时候也要适当休息,玩游戏可以愉悦心情,预防老年痴呆,追剧可以扩展你的视野,教给你很多生活道理
这些都是和学习不冲突的,千万别成了只会学习的窗内人!

猜你喜欢

转载自www.cnblogs.com/houzheng/p/12153849.html