您的位置:首页 >资讯>常识

天天视讯!撸完Dubbo3源码,我总结了这些阅读源码的技巧

2023-06-22 00:47:47 来源:清一色财经 收藏

今天,就为小伙伴们分享下我是如何利用不到一个月的业余时间(每天不到2小时)快速掌握Dubbo的原理和源码的。


(资料图)

最近收到很多小伙伴的微信私聊消息,大部分都是在询问如何快速掌握一个框架的原理和源码,比如:Spring、Dubbo、MyBatis等。针对这个问题,周末我简单总结了下,今天,就为小伙伴们分享下我是如何利用不到一个月的业余时间(每天不到2小时)快速掌握Dubbo的原理和源码的。

阅读源码的前提

阅读某一项技术框架,或者说开源项目的源码前,你必须了解这个框架是干啥用的,说白了,就是你至少了解这个框架该怎么用,在什么场景下用,使用的过程中会遇到哪些坑,如何解决。而学习一个框架,最简单有效的方式就是它的官方文档。Dubbo也不例外,我在学习Dubbo的时候,也是首先看的Dubbo的官方文档,基本没看其他的文章或者资料。为啥?因为Dubbo的官方文档是最权威的,是最可信的。

即使你在项目中没有使用过Dubbo框架,你也可以按照Dubbo的官方文档基于Dubbo写一个简单的示例程序,通过示例能够让自己快速的了解Dubbo。

为何要阅读源码

阅读源码前,你要清楚的知道自己为何要阅读源码,带着问题去看源码。想要看框架的源码,无外乎两种情况:一种就是在项目中遇到了无法通过文档或者其他技术资料解决的问题,想通过源码来找解决方案;另一种就是对框架的底层实现好奇,这么牛逼的技术是如何实现的?而我,基本属于后者。在我经历的用户上亿的高并发电商系统中,部分核心子系统使用了Dubbo,经过性能调优,Dubbo的表现良好。我就很好奇:Dubbo是如何抗住这么高的并发的?它内部是如何实现的?

其次,阅读源码前,你要为自己提几个问题,比如我在看Dubbo源码前,就明确了很多问题,比如:Dubbo是如何实现RPC服务的?服务提供者和调用者之间是如何交互的?Dubbo是如何封装网络调用使其看起来和调用本地方法一样?Dubbo又是如何实现服务治理的?等等一系列的问题,我记得我当时看源码前,足足给自己提了上百个问题。带着问题看源码,能够让你事半功倍,不仅仅是Dubbo,对于其他的框架,也是如此。

还有就是,不要为了看源码而看源码,很多小伙伴看了不少框架的源码,可没过多久就忘记了,跟没看一样,还浪费了很多时间。这种就是典型的为了看源码而看源码,并没有去深究这个框架的实现原理和细节,遇到看不懂的,可以先跳过,记录下,等把相关联的代码看懂后,再反过头来重新梳理没有看懂的源码。

框架使用了哪些技术

阅读源码前,还有一项重要的工作就是,要了解框架中使用了哪些技术。对所用的技术要有个大体的了解。比如:在Dubbo中使用了SPI、时间轮定时任务、服务注册与发现、Netty、序列化、自定义协议等等技术。所以,在阅读源码前,先要对这些技术有个大体的了解。

比如,在看Dubbo源码前,我就已经了解到Dubbo的网路交互底层使用的Netty,正好在我工作不久的时候,我又深入研究过Netty的源码,这就有助于我在看Dubbo源码时,能够更好的理解Dubbo的网络编程部分。

所以说,台上一分钟,台下十年功,在看Dubbo源码前,我也是做了充分的准备。

阅读源码时注意什么

任何一项技术框架,或者说开源项目,肯定是为了解决某些场景而生的,就比如Dubbo,相信小伙伴们都知道,Dubbo作为一个分布式服务治理框架,一个典型的使用场景就是分布式系统。

其次,一个优秀的技术框架或开源项目背后肯定蕴含着众多其他技术的原理与实现。我们同样是以Dubbo为例,在Dubbo中,为了实现在分布式场景下,调用远程RPC服务就像调用本地服务一样,其至少需要实现如下功能:

服务之间高性能的通信。服务调用需要做到负载均衡、高可用、限流。服务治理。高可靠、容错。服务能够自动注册和发现。

而实现这些功能时,Dubbo借助了哪些优秀的开源框架?这些开源框架Dubbo是如何集成起来的?是硬编码方式集成?还是其他更好的方式?这些都是需要我们在阅读源码的时候,去源码中找到答案。

阅读源码的方式

我把阅读源码的方式总结为:先整体再局部,先宏观再微观,先粗略再细节。

什么意思呢?就是在看源码的时候,先从整体上把握源码的设计原理和设计理念,先整体上大概了解源码是如何实现的。比如在Dubbo中,网络编程是基于Netty实现的,你就可以先做个了解,知道这么回事。从整体上把握基本的框架源码后,再从细节中死磕具体的实现,比如,在Dubbo中是如何使用Netty实现网络交互的?

记住,阅读源码时切忌在还没有搞懂整体的设计原理和整体源码设计前,就开始死扣源码的细节。否则,你会在源码里面迷失自己。

如何验证自己掌握了源码?

阅读源码光看源码还不行,还要自己去动手实践,正所谓“实践是掌握整理的唯一标准”。你不实践,怎么知道自己是不是掌握了。

我把实践部分分为两个组成部分:在看源码的过程中动手实践;在看源码后动手实践。

在看源码的过程中动手实践就是说:在看源码的过程中,将自己不明白的地方记录下来,查阅官网文档或者其他资料,如果是由于自己的技术能力有欠缺,看不懂的,就要及时为自己充电来补充相关的知识点了。如果是遇到自己认为比较好的实现方式时,可以在框架的代码上以注释的方式标记自己的理解。比如,我在看Dubbo源码的时候,就标注了大量的注释。

在看源码后,一定要动手实操。看过Dubbo的整体源码后,如果你认为自己掌握了Dubbo,就不妨自己动手实现一个RPC框架,看看自己实现的框架与Dubbo框架有哪些区别,为啥Dubbo框架是这样实现的。再反过头来带着问题看Dubbo的源码,你肯定会理解的更加深入。而我,在看完Dubbo框架的源码后,也是这样做的。

阅读源码的总结

最后,跟小伙伴们透露下:我从开始看Dubbo源码,到掌握Dubbo的原理和源码,前前后后只用了不到一个月,而且都是用的业余时间(每天不到2小时)。

记住,阅读源码前,一定要明确为何读源码,带着问题读源码,对于源码中所涉及的其他技术或框架,一定要有所了解。阅读源码的过程中,要遵循:先整体再局部,先宏观再微观,先粗略再细节的原则。最重要的一点是:在阅读源码的过程中和阅读源码后都要动手实践。

关键词:

相关的文章>>

标签:
今天,就为小伙伴们分享下我是如何利用不到一个月的业余时间(每天不到[ 查看全文 ]
标签:
用银行卡取钱,银行卡被吞了怎么办?一个操作立马退回,简单实用,吞卡,[ 查看全文 ]
标签:
张坤三年期产品开放赎回:收益不如银行存款,要不要卖掉?,张坤,定开,[ 查看全文 ]
标签:
6月21日,重庆轨道18号线奥体中心(含)至长江二桥站(含)正线及其辅[ 查看全文 ]
标签:
据九江学院官网6月21日消息,6月20日下午,九江学院召开全校领导干部会[ 查看全文 ]
标签:
近日,酒泉马鬃山300MW风电项目配套45MW 180MWh预制舱式储能系统集成采[ 查看全文 ]
标签:
要的文案1、别跟我谈感情,谈感情伤钱。2、最深的绝望,总是来自最爱的[ 查看全文 ]
标签:
今日恒生科技指数大跌2 79%,恒指、国指分别下跌1 98%和2 24%[ 查看全文 ]
标签:
虽然随着社会的进步与发展,网络化和电子化越来越普遍,但是纸张的利用[ 查看全文 ]
标签:
在昨天进行的无畏契约东京大师赛中,EDG以总比分1-2落败于PRX,以六强[ 查看全文 ]
标签:
罗马诺:沙特俱乐部准备4000万欧报价托马斯,分期付款,罗马诺,阿森纳,[ 查看全文 ]
标签:
伴随着端午小长假的来临,北京公交集团客七分公司将于6月22日分别开通[ 查看全文 ]
标签:
观点网讯:6月21日晚间,大悦城地产有限公司发布公告称,该公司计划为[ 查看全文 ]
标签:
标题:三国时期的阴平小道在哪里?第一段:引言阴平小道是一条历史悠久[ 查看全文 ]
标签:
经典与科技的融合迪恩机床DIMF2023展出机型公开产品技术·主要机型(上)[ 查看全文 ]
标签:
标准发展集团(01867)发布截至2023年3月31日止年度的全年业绩,该集团去年 [ 查看全文 ]
标签:
新华社北京6月21日电(记者姜琳)记者21日从人力资源社会保障部获悉,[ 查看全文 ]
标签:
6月21日,邱耀乐现身记者会,他表示与炎亚纶于2017年相识并交往(当时[ 查看全文 ]
标签:
最近Redmi动作频频,除了RedmiK60Pro,还有一款新机即将全场,它就是千[ 查看全文 ]
标签:
6月21日消息,今年4月在美国拉斯维加斯召开的ArubaAtmosphere全球大会[ 查看全文 ]

热门搜索:

春季养生 健康问答 资讯

资讯

更多
  • 天天视讯!撸完Dub...

  • 每日速读!用银行卡...

  • 张坤三年期产品开...

  • 重庆轨道18号线全...

  • 九江两所高校领导...

  • 北京明天开通三大...

图说健康

更多

体育健身

更多