经过翔仔这些日子的观察,发现大家对框架源码或者框架设计的学习存在敬畏之心,总觉得,现阶段的我并不适合学习框架源码,或者不适合开发自研框架,这些东西对于我来说太难了,还是等我学习完***再来学习吧。凡是出现等字,就跟程序里面的ToDo注释一样, 就很有可能永远都不去尝试了。
但是呢,你在等的时候,总会有别人去做尝试的,这样就拉开了大家的距离。随着互联网的红利逐渐耗尽,具有核心竞争力的人才才能在逆势中稳扎稳打。而核心竞争力如何培养,如何让你具备摆脱重复劳动的技能,学习框架源码和进行框架设计就是一个成本相对较低,并且能看得到进步和变化的途径。
翔仔觉得未必,不要看见框架就害怕,看到源码就心烦,这毕竟是拉开差距、提高核心竞争力的一个有效途径。就跟外行看内行一样,总感觉啥都难,但是只要你迈开这一步,掌握了框架设计的方法,然后站在设计者的角度去思考框架的源码,这样就能抓住框架源码的脉络。抓住脉络之后,就能顺着它去摸通源码的全貌,之后再结合自己的需求深入某个细节里去研究,长此以往,多晕几次车,就能够把框架摸熟摸透,同时还提升了自己的框架设计能力。框架设计就是一个抽象通用能力的过程,一旦你掌握这项技能,那么干起来事半功倍。
身为Java码农,翔仔觉得Spring就是特别适合我们上手的框架,它经过了这么久的迭代,却能做到经久不衰,证明它里面的思想、理念是符合社会生产要求的,许多公司所谓的自研框架也都是参考了Spring,基于Spring去扩展的。所以研究一个热门框架,掌握里面亘古不变的思想,并且模拟它设计出一套简易的框架来,翔仔觉得这是一种行之有效的、提升自己核心竞争力的优势。框架也是人设计出来的,我们为什么不可以呢?所以不要过于恐惧,要努力尝试拥抱它,只要配合好合适的教程,入了门,就能在框架这个大草原上驰骋。
其实回答很简单,会用就能学,所以你只要是会用Spring的,那么就能学习,我们要的是入门,入门后再顺着框架脉络去看去学,多于别人吐几次,就能强过很多人。
首先,前面说了,学习了之后,至少能提升个人的核心竞争力,以及对问题的理解和分析能力。
其次,说说明显的收益。其一就是面试。Spring相关的考点在面试中特别常见,比如说面试官问你Spring容器的依赖注入是如何实现的。针对此类问题,对于已经掌握脉络,看过源码的你,相信并非难事,从源码以及架构层面去分析,相信大概率会通过面试官的法眼。其二就是工作。工作上,刚入职往往就会去填别人的坑,填别人的坑就要阅读别人的代码,此时对于你来说也不是什么难事,毕竟你在学习Spring的时候阅读是很多开发者的心血和结晶,因此你甚至可以去改动别人的代码,突破别人的核心领域,让自己立于不可替代的位置,对你个人品牌的建设和收入的提升都会是一个有益无害的举措。
再者,你还可以去改进所学习的框架本身的不足,如果你作为框架的贡献者,名字出现在了开源社区,相信又会对上面的两个诉求有了更近一层的帮助。
##那么学习的过程中要注意什么?
主要有两点,第一点,不要一开始就陷入细节,我们要的只是脉络,脉络清楚了之后,再带着自己的诉求进入到细节去研究;第二点,一定要多阅读框架的api用法,熟悉了框架怎么用,你就能了解到源码为什么会这样写,这点会起到很大的帮助。
总之,不要看到源码或者源码相关的课程就害怕,翔仔也会尽最大所能让大家理解起来不那么复杂,努力为大家撑开知识的大门。不要觉得现在学习的时机不合适,现在是学习的正当时,趁我们还年轻,多多提升自己的核心竞争力。