对于 分布式系统,我还是抱有敬畏之心的,因为其内容过于庞大;我在学习基础编程的时候走过一个最大的弯路就是过度追求技术而忽视了基础编码能力,当时在学习springboot的时候,觉得那些新内容都是那么新奇高大上,就一直往后学,忽视了在此之前匆匆而过的mysql和ssm阶段—框架开发的基础能力,我在学完springboot后发现自己竟然看着idea写不出代码的时候才意识到这点,这才又会回头去夯实基础后又重新学历一遍springboot,后来每次想起那段时间都很心悸,就算刚看了框架技术,一低头发现自己是在空中楼阁上摇摇欲坠,基础开发一点都不熟练,很可怕的事情,因为这意味着无论是你之前学的基础和你现在学的框架知识,都是浪费时间,因为再过段时间你就会忘得一干二净,等于是自废武功从头再来
所以后面的学习我都是督促自己不要太过追逐过高的技术知识,那只能是浪费时间,而现在网上的培训机构大肆鼓吹分布式的知识,乃至是很多公司的面试,也会去问应届生这方面的问题;
在我看来,对于应届生微服务确实是要掌握,因为这是中大型公司都已经采用的项目服务组成形式,要进行开发至少必须会用(会用也就顺理成章得懂),但是分布式,这是为了应对项目的体量逐步增大而演进出的一种集群形式,其每个内容实现都是为了应对某个实际场景的问题,更多是一个不断演进实践的过程,同时银弹问题也在分布式领域显著体现—没有一个能兼顾所有需求的完美方案,即CAP理论所谈,同时单体架构的各种经验原则也在分布式领域不再生效,比如原来的单事务到分布式中的不同分布式事务实现,这点就像是现实世界的物理法在闪电侠的神速力领域不适用,其完全是另一套物理法则;
对于应届生踏上工作前的一个正确的成长之路应该是他对于单体架构的所有会使用到的开发框架及组件,各种中间件的使用及原理,常见业务优化方案了如指掌,并带着这些牢靠的基础去从分布式的出现背景开始,了解其大致演进过程和主流方案理论,入职后再在实践中对其进行落地实现