这篇文章我们就来讲一讲为什么要看源码,怎么看源码
为什么看源码
面试
随便一个面试无论大小,是不是都会遇到给我讲一下 HashMap 、ArrayList、ConcurrentHashMap 的原理,那么如果你不自己看源码,而是随便从网上看看分析文章,很难体会到其中的奥妙。
设计
很多时候你在自己开发,可能会遇到一些设计问题,绞尽脑汁,也查阅了很多设计模式的入门文章,但是就是不知道怎么设计。那么这个时候你也应该多看看源码。 Spring 里面至少用了 9 种设计模式,那么你熟读了 Spring 的源码,遇到一些设计上面的问题自然可以照猫画虎,后之融会贯通。
掌握
突然有一天有人和你说,你做的 *** 功能出问题了,马上 Debug 一下,发现抛异常的全是代码库里面,一下就懵逼了。那么如果自己深入理解了框架的原理,源码自己了然于胸自然不会担心,分分钟定位问题。
怎么看源码
吹了半天牛逼了,你到底说说怎么看源码嘛?我来分享一下我个人看源码比较高效的一种方式,当然不一定是更佳的方式,如果你有更好的方式欢迎文末留言,一起学习。
知其然
首先当然是拿过来狂搞他的 API,你都不知道怎么用,用来干嘛的,看了源码也没啥用啊。所以之一步是通篇读他的官网[1],然后对着官网的例子把他的用法全部了解并实践。
渐入佳境
这时候 API 想必你已经了解了吧?那么还是看看他的 官网 有没有架构、组件、模块介绍的文章,对整个项目有一个概览,比如最近异常火爆的 Dubbo 他的官网如何设计,如何运作可是说的很清楚。
囫囵吞枣
这时候 API 和 架构你都了解了吧,然后找一个请求的入口 Debug 起飞。配合上一节说的官文,对照自己的 Debug 路线会清晰很多。
知其所以然
然后就可以根据每一个点都做 真人 Debug[2] 和 Debug,假以时日你变打通任督二脉。
封印
看到这里你已经身怀绝技,试问哪一个大侠的武学经典不都是装订成册,流传千古的?所以这时候你找一个本子,把自己的理解画一画,写一写。一定要抱着让别人能看懂的方向去书写,这样不仅可以流芳百世对自己也是另一种精进。
References
[1] 官网: 一定要看他的官网,其他博客和说明文档不全面或者不一定对,比如我上一篇文章MySQL的count性能比较,如果不自己看下源码真的被很多网上的帖子误导
“黑客”是什么意思? 黑客的解释 指精通电子 计算 机技术,善于从互联网中发现漏洞并提出改进 措施 的人。指通过互联网非法侵入他人的电子计算机系统查看、更改、窃取保密数据或干扰计算机程序的人。黑客(...
新生儿常常表现出一些非特异性的症状,比如呼吸困难,这很有可能是败血症的缘故,那么导致新生儿败血症的原因有哪些呢?新生儿败血症治好后会复发吗,怎样护理新生儿败血症。 新生儿败血症会复发吗 败血症仍是...
人民银行定于今天发行2020中国庚子(鼠)年金银纪念币一套,共17枚。此次纪念币最大的亮点是出现了面额达到10万元的纪念币,该纪念币为10公斤圆形金质纪念币。记者从中国金币总公司湖南特许零售商处了解到...
在计提工资和发放工资这块,会计分录稍不小心就会搞混,几乎每个会计都曾经“掉进坑里”呢~今天就来好好讲讲相关会计处理 ?一、计提工资和发放工资的区别 首先,要搞清楚计提和发放的区别。计提,即...
本文导读目录: 1、黑客是怎么给自己家电脑设密码的? 2、阿尔法狗又进化了,未来是终结者还是黑客帝国 3、temtem用了黑客的宠物还能交易吗? 4、我的桌面宠物流氓兔怎么死了 5、黑...
手机电池不耐用怎么办?怎么用最省电?学起来!一般手机的...