从一次问题讨论聊聊我对阅读源码的思考

栏目: 后端 · 发布时间: 7年前

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

比如本文,没有深度思考的同学,很容易就被表面现象所迷惑,以为问题就此解决,立马关掉文章。但是深度思考的同学就会选择关注肥朝公众号,然后星标置顶,并思考,肥朝为什么能迅速找到这个关键的类呢?这个才是最核心的问题!一定要明白什么叫"解决一个问题"和"解决一类问题"!如果你没有掌握分析问题的方法和技巧,下次遇到其他的注解,你还是解决不了,那又有什么意义?

从一次问题讨论聊聊我对阅读源码的思考

分析问题

由于肥朝之前写过Dubbo系列的源码解析,公众号也大多是老粉丝,那么我就以Dubbo为例,说下分析问题的思路。当然这个时候喜欢抬杠的同学可能就要反驳了,这个问题不是Springboot的吗,和Dubbo有什么关系?我只能说,优秀的代码,套路思想都基本相同,坑爹的代码,却各有各种不同的坑法。拿Dubbo来分析,并不影响你发现问题的本质!

比如Dubbo中常强调的就是"微核心"、"插件式"。梁飞曾经提过

即然要扩展,扩展点的加载方式,首先要统一, 微核心+插件式,是比较能达到OCP原则的思路,由一个插件生命周期管理容器,构成微核心,核心不包括任何功能,这样可以确保所有功能都能被替换, 并且,框架作者能做到的功能,扩展者也一定要能做到,以保证平等对待第三方, 所以,框架自身的功能也要用插件的方式实现,不能有任何硬编码。

很多同学看完这段一脸懵逼。其实这段话的后半部分是关键

框架作者能做到的功能,扩展者也一定要能做到,以保证平等对待第三方, 所以,框架自身的功能也要用插件的方式实现,不能有任何硬编码。

所以从这段话肥朝就可以断定, actuator 如果要用定时器的功能,他肯定站在和普通使用者也就是公众号粉丝使用定时器的角度,去启动这个定时器的功能。

也就是说, spring-boot-starter-actuator 中,肯定是有类打上了 @EnableScheduling 注解,而不是零散的调用注解底层封装的一些东西。这个是理论基础。这个理论基础,才能决定你下一步的思考和行动方向。

有了理论基础,那么关键是,到底哪个类打上了啊!这个时候,我们可以利用idea的搜索技巧来

从一次问题讨论聊聊我对阅读源码的思考

idea的这个搜索功能很好用,搜索scope可以设置各种范围,看源码必备技能!

考虑到每个人的快捷键不同,因此看下图

从一次问题讨论聊聊我对阅读源码的思考

敲黑板划重点

看到这里,很多人就容易理解成,本篇是介绍idea的技巧的文章。还是那句话,看问题一定要深度思考。源码是看不完的,但是解决问题的手段和 套路 ,却是有限的。很多同学看源码,就只是看个流程,感觉像看电影一样,并没有个人的独立思考,这样知识的转换率实在太低。比如你注意看我本文分析的 理论基础实践 ,这些经验,都是需要你从大量的阅读源码中不断去总结的。

所以,请不要再问肥朝,"看源码,究竟有没有用","怎么看源码"等问题,因为我每一篇源码解析,源码实战,都在回答这两个问题,如果你还问这种问题,可见你根本就没有关注肥朝,或者关注了没有星标置顶!

另外,各种源码解析系列(注意肥朝的用词,我说的是系列)还在不断热更中,欢迎持续关注,一起"追剧"!

写在最后

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考

从一次问题讨论聊聊我对阅读源码的思考


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

New Dark Age

New Dark Age

James Bridle / Verso Books / 2018-7-17 / GBP 16.99

As the world around us increases in technological complexity, our understanding of it diminishes. Underlying this trend is a single idea: the belief that our existence is understandable through comput......一起来看看 《New Dark Age》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

MD5 加密
MD5 加密

MD5 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具