1.引子
应交流群小伙伴要求,写一篇《新人如何快速剖析源码,掌握原理》的文章。特地花一小时整理一下,大家共同提高哈。
2.学习步骤
其实如果多看作者的几篇系列文章,就会发现套路就是四步骤:
- 原理概览
- 简单样例
- 源码剖析
- 总结提高
2.1 原理概览
官网永远是第一学习地(切忌上来直接看别人博客,网上质量堪忧,很多旧版本、错误论点)。上官网可以确保咱们大方向不出问题。在官网学习项目的初衷、特性、地位,全局掌控一下这个项目的定位。
哪些渠道?
例如独立域名官网(spring系列、apache系列)、github等。
2.2 简单样例
看再多不多不如自己跑一遍,看看怎么用,有什么效果。不知道怎么写样例?官网都有。
2.3 源码剖析
简单样例有了,可以debug了,一步一步跟着源码看(在核心步骤处打断点)。
- 主要脉络法:先把握主要脉络,模块化去分析源码,切忌一上来就死扣细节,可以画图辅助。
- 专题剖析法:掌握基本思路后,以独立专题的形式来看源码细节,效果更佳。(细节看完后,配以专题博客,效果更佳)
- 疑难解决法:如果实际中用过,甚至遇到了问题,直接带着问题去找答案。
- 实践优化法:如果有机会在公司项目中使用上线,利用自己了解的原理、特性,做到了精细化使用,优化了性能,那就是完美中的完美,技能+绩效双丰收...
了解基本概念原理后,还看不懂源码怎么办?
- 参考前人智慧:看看质量高的博客,例如博客园,部分CSDN,简书等。切忌照搬别人的博客,无脑copy,毫无价值。要以自己一个新的视角去重新排版博客,在某些角度写的更好才有价值。(比如源码别人剖析挺好,但总结不到位,你自己补上流程图、原理图等)
- 多看几遍:要纪录下来,每次比上次多看懂一些,不必一次全部看懂全部。
2.4 总结提高
站在一个俯视的视角,总结这个项目,本次对这个项目的剖析,还有哪些待完善的,以便自己将来回过头来再完善。
3.番外篇
- 有难度:新人肯定上手会有一定难度,但迈出第一步最重要,哪怕你就总结了一个小模块。这就是零的突破,一直写一直开心。
- 很无聊:阅读源码很无聊,但想要当技术大牛,必须经历这个过程(国内程序员行业已经很卷了,算法大神不算哈)。可以另辟视角,找点乐趣。比如研究下作者,研究下算法。其实源码看多了,就发现都是套路(UML类关系、设计模式、面向对象设计原则等等),熟能生巧。
- 在此祝:祝大家能快速入门,花最少的时间掌握源码阅读技能,早日年薪百万,迎娶白富美。