【肥朝】从一次问题讨论聊聊我对阅读源码的思考
比如本文,没有深度思考的同学,很容易就被表面现象所迷惑,以为问题就此解决,立马关掉文章。但是深度思考的同学就会选择关注肥朝公众号,然后星标置顶,并思考,肥朝为什么能迅速找到这个关键的类呢?这个才是最核心的问题!一定要明白什么叫"解决一个问题"和"解决一类问题"!如果你没有掌握分析问题的方法和技巧,下次遇到其他的注解,你还是解决不了,那又有什么意义?
分析问题
由于肥朝之前写过Dubbo系列的源码解析,公众号也大多是老粉丝,那么我就以Dubbo为例,说下分析问题的思路。当然这个时候喜欢抬杠的同学可能就要反驳了,这个问题不是Springboot的吗,和Dubbo有什么关系?我只能说,优秀的代码,套路思想都基本相同,坑爹的代码,却各有各种不同的坑法。拿Dubbo来分析,并不影响你发现问题的本质!
比如Dubbo中常强调的就是"微核心"、"插件式"。梁飞曾经提过
即然要扩展,扩展点的加载方式,首先要统一, 微核心+插件式,是比较能达到OCP原则的思路,由一个插件生命周期管理容器,构成微核心,核心不包括任何功能,这样可以确保所有功能都能被替换, 并且,框架作者能做到的功能,扩展者也一定要能做到,以保证平等对待第三方, 所以,框架自身的功能也要用插件的方式实现,不能有任何硬编码。
很多同学看完这段一脸懵逼。其实这段话的后半部分是关键
框架作者能做到的功能,扩展者也一定要能做到,以保证平等对待第三方, 所以,框架自身的功能也要用插件的方式实现,不能有任何硬编码。
所以从这段话肥朝就可以断定,actuator
如果要用定时器的功能,他肯定站在和普通使用者也就是公众号粉丝使用定时器的角度,去启动这个定时器的功能。
也就是说,spring-boot-starter-actuator
中,肯定是有类打上了@EnableScheduling
注解,而不是零散的调用注解底层封装的一些东西。这个是理论基础。这个理论基础,才能决定你下一步的思考和行动方向。
有了理论基础,那么关键是,到底哪个类打上了啊!这个时候,我们可以利用idea的搜索技巧来
idea的这个搜索功能很好用,搜索scope可以设置各种范围,看源码必备技能!
考虑到每个人的快捷键不同,因此看下图
敲黑板划重点
看到这里,很多人就容易理解成,本篇是介绍idea的技巧的文章。还是那句话,看问题一定要深度思考。源码是看不完的,但是解决问题的手段和**套路
**,却是有限的。很多同学看源码,就只是看个流程,感觉像看电影一样,并没有个人的独立思考,这样知识的转换率实在太低。比如你注意看我本文分析的理论基础
到实践
,这些经验,都是需要你从大量的阅读源码中不断去总结的。
所以,请不要再问肥朝,"看源码,究竟有没有用","怎么看源码"等问题,因为我每一篇源码解析,源码实战,都在回答这两个问题,如果你还问这种问题,可见你根本就没有关注肥朝,或者关注了没有星标置顶!
另外,各种源码解析系列(注意肥朝的用词,我说的是系列)还在不断热更中,欢迎持续关注,一起"追剧"!
写在最后
转载于:https://juejin.im/post/5d00df7ef265da1bb31c3186
【肥朝】从一次问题讨论聊聊我对阅读源码的思考相关推荐
- 跟大家聊聊我们为什么要学习源码?学习源码对我们有用吗?(源码感悟)
来自:源码笔记 1 前言 由于现在微服务很流行,越来越多企业采用了SpringCloud微服务架构,而SpringBoot则是快速构建微服务项目的利器.于是笔者以此为切入点,将SpringBoot作为 ...
- android源码阅读笔记1-配置源码路径/阅读源码方法讨论
开始之前 android studio中配置android源码路径 android studio中有源码的路径,你只需要打开SDK Manager下载源码然后重启android studio即可查看源 ...
- 聊聊阅读源码那些事儿
大家好我是老潘,我们又见面了~ 如果下文中有格式方面的错误,可以点击这里查看原文.老潘的AI宝藏内容也总结在这里! 看源码本身就是一种学习,就像小时候写作文一样,看别人的好作文也就会模仿一些好的句子, ...
- 聊聊 Kafka: Consumer 源码解析之 Rebalance 机制
一.前言 我们上一篇分析了 Consumer 如何加入 Consumer Group,其实上一篇是一个很宏观的东西,主要讲 ConsumerCoordinator 怎么与 GroupCoordinat ...
- 讨论一下文章的阅读量 (个人观点)
讨论一下文章的阅读量 (个人观点) 昨天我写了一篇文章,不对,应该是前天才对,文章的名字叫<分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)> 想不到会有这 ...
- spring源码分析,聊聊PropertyPlaceholderConfigurer
2019独角兽企业重金招聘Python工程师标准>>> 简介 最近工作中需要使用zookeeper配置中心管理各系统的配置,也就是需要在项目启动时,加载zookeeper中节点的子节 ...
- 【肥朝】看源码,我为什么推荐IDEA?
本文并不评论Eclipse与IDEA孰好孰坏,但是由于肥朝平时都是使用IDEA开发的,所以推荐IDEA.这个和肥朝平时都是吃粤菜,所以推荐的都是粤菜为主,但是并不是说其他菜不好吃,肥朝不挑食! 1.条 ...
- 一印度学生Asp.net源码分享讨论
(本文原标题:Asp.net源码程序分析所感--印度,一个不可轻视的近邻!) 最近在国外Asp.net网站晃悠,搜集到了不少宝贝,觉得不错的就汉化调试一下发到51aspx与大家分享,一 ...
- 聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除
聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除 在聊聊语音聊天室app源码各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的 ...
最新文章
- 什么是C++模板?_百度知道
- luoguP2479 [SDOI2010]捉迷藏
- 7-1 堆栈操作合法性(20 分)
- girton college things locations
- 《觉建筑》《斑点狗眼里的世界》首发式
- 关于HttpUrlConnection网络请求之返回结果的中文乱码解决方法
- 大数据学习-python通过Pyhive连接hive数据库
- Mybatis组成部分
- 算法设计与分析复习第一二章(时间复杂度和蛮力法)
- python创建一个银行账户类account_银行账户(示例代码)
- Essential Matrix 的求解算法--Nister 五点算法以及原理
- HTMLParser(一个比较流行的html代码解析、处理开源项目)学习,总结
- 3行代码 为你的网站博客添加萌萌哒可爱二次元女动漫玩偶人物(看板娘)
- RFT API初涉——之解决RFT无法识别windows对话框的问题
- 【postgresql】 获取月初月末日期
- java 泛型中的上界(extend)和下界(super)
- 从钉钉后台对接考勤打卡信息(仅供参考)
- 王者荣耀购买装备----笔记
- rm 删除除了某文件或文件夹之外的其他文件
- TiDB+TiSpark部署--安装,扩缩容及升级操作
热门文章
- 对JSP和Servlet的理解
- [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)
- [BZOJ1968][AHOI2005]COMMON约数研究 数学
- Leetcode 笔记 116 - Populating Next Right Pointers in Each Node
- 解析Java对象的equals()和hashCode()的使用
- Exception的妙用
- Python rsa 加密
- linux用户管理的命令及手动添加用户
- 如何显示Windows 10登录过程详细信息
- java 中对hashmap进行排序