前言
阅读源码的习惯记得是从12年开始的。源码阅读对提高开发能力,熟悉他人代码与设计,技术成长,问题解决,个人自信有极大的益处。源码阅读是一件非常困难的事情。 为什么会去源码阅读,怎么源码阅读。给大家讲解我的精力
第一阶段 为了面试去阅读源码(2012年)
面试的时候经常技术细节方面的问题
- ArrayList,LinkedListde,Vector的区别,初始化大小,扩容大小。
- List,Set,Map的区别
- 等等这里问题
当时只是为了面试去看,看的地方只是面试需要的地方 源码范围也在java api
第二阶段 为了解决基本开发问题(2013年上半年)
迭代HashMap的时候,无法做其他操作。
当是并不知晓ConcurrentHashMap的存在。
第三阶段 为了解决开发过程中无法正确使用框架的问题(2013年下半年,2014,2015年)
把mina集成到spring里面。
- 集成不进入
- mina流程问题
通过debug方式,阅读源码以逸待劳的解决了
第四阶段 为了深入了解软件,解决深层次技术与架构问题
- JavaScript是一个很飘逸的语言,JavaScript的框架更加飘逸。尤其是angluar。但是angluar是一个优秀的前端框架,他的生态圈也十分完善。是后台管理系统重要支柱。经常出现依赖报错,都不知道问题出在哪里,有些问题莫名其妙就出现了。
经历一个月不停的看源码,终于把angluar的核心看完了。知道angluar个个模块之间的组合,依赖,如何在不同层次优化angluar,管理,架构设计。
- rocketMQ是消息中间件中安全性与稳定性最优秀的消息中间件。所以在选择消息中间件的时候,直接选择了rocketMQ。同样遇到问题,什么是消息中间件,pull与push模式的区别是什么等等问题出现使用rocketMQ的过程中。如果对rocketMQ性能调优,大集群情况下如何处理等等架构与性能问题也出现在眼前。通过阅读源码这些问题都不在问题了。只有如何落地,如何设计得更好了。
源码面前了无秘密
当你把源码看完,看懂,明白所以然的时候,发现不过如此,也就这样。只是自己写不出而已。但是可以微调,在一些不难的地方按照自己的需求进行修改或者维护。