关于阅读源码的话题,可以说从上学的时候接触的编程语言开始,就一直伴随着我们。不管是上学时代老师说,有机会了要多看看优秀框架的源码;或者是工作了,同事或者朋友说,有时间了多看看开源项目的源码;再或者,你去线上的或者线下的技术分享会了,分享人也会时不时提到要多阅读源码。所以说关于阅读源码的话题,一直是伴随着我们的。
为什么阅读源码
可以说阅读源码就像读书一样,如果只是自己摸索,知识的积累往往会异常缓慢。而通过读书,可以快速的学到自己想要学习的知识。那么通过阅读源码,你也可以快速的丰富自己的知识架构和体系,从而提高自身的技术实力。
但是阅读源码需要一定的编程基础,并不建议你从一开始接触编程就上手阅读源码,因为此时你并没有形成自己的知识结构,盲目的阅读源码可能并不能收获你想要的内容,可能还会加深你的理解难度。当你的知识或者说工作经验有一定的积累之后,这个时候你在阅读源码时可以加入日常工作中遇到情况的分析,对于你理解源码,理解源码结构都会很有帮助的。
实战过程中,有通过阅读源码突破瓶颈的经历吗
工作过程中,虽说大部门时间都是自己根据理清业务思路写代码,但是大部分企业的项目开发都会采用开源架构,那么既然你用开源架构,那么工作中一定会有需要去改开源架构逻辑的地方。比如我们日常工作中使用的是若依架构,在最初接入项目的时候,由于需要用到单点登录系统,但是又需要保留若依架构的shiro权限认证,因此就只能基于若依架构的基础上对若依源码的权限这块做改造,正如这样
当然,除了对若依架构shiro权限认证相关的改造,还改造过单点登录系统的源码。当时是由于原有的nginx会话保持策略ip_hash需要去掉,改为轮询,为了保证用户端的无感切换,在阅读单点登录源码的基础上通过对SSO单点登录系统验证码、LT存入redis,及补偿service的操作更加深入的了解单点登录系统登录流程,大家感兴趣的可以去看我的博文:https://developer.aliyun.com/article/842077
对于很多人来说“读源码太枯燥了,没啥意思”
是的,阅读源码这个事对于很多人来说确实太枯燥无趣了,但是这就是一个学习的过程,而伴随着学习过程中的痛苦,在学习结束之后的收获也就会更加甜蜜,这就是先付出才会有收获。很多时候如果不用阅读源码也可以学习到他人的架构思想以及内部运行原理,那么可能就不会有人去阅读源码了。但是这是不现实的,想要提升自身编程能力,提高自身排查问题、解决问题的能力,那么就一定需要阅读优秀源码。阅读源码除了可以提高你自身的编码技巧和逻辑思维能力,还可以帮助你从源码出发快速定位问题所在,分析原因并找到解决方案,源码中的创新点和最佳实践同样可以激发你的技术创新等等,总之就是阅读源码,一定是值得的。
阅读源码有哪些好方式与好步骤呢
个人理解的阅读源码的好方式就是你debug跟源代码,正如我当时改造单点登录系统源码时,一步一步debug源码,最终才解决了遇到的问题。解决问题的同时,对于单点登录系统的业务逻辑以及运行流程也就完全熟悉了,那么以后即使再需要改造,想来也就不会耗时太久了。
除了debug源码,还有就是可以通过在日常开发中用到的jar包方法注释来了解,正如这样
日常的开发工具,比如idea,当你打开jar包代码方法时,想要查看源码的话可以通过右上角【Download Sources】下载源码
下载完成之后再次打开你想要看的源码就可以看到注释信息了
最后,希望大家有时间的话都可以看一些日常工作中用得到的框架的源码,这样在框架代码出现问题时,也可以快速定位处理,提高自身分析问题处理问题的能力。