一:时代背景
身处互联网行业的我们一直处在变革的最前端,受到行业发展浪潮的洗礼,不停歇地追赶着技术革新的脚步。特别是近几年来, 互联网架构不断演化,经历了从集中式架构到分布式架构,再到云原生架构的过程 。在这个演变过程中,我们可以深刻感受到一系列的格局变化 —— 软件改变世界,开源改变软件,云吞噬开源。每一次架构模式的升级都会给这个世界的合作模式带来变化。
“云原生”因能解决传统应用升级缓慢、架构臃肿、无法快速迭代等问题而逐渐成为这个时代舞台的主角。身处变革的浪潮中,我们看到云原生的出现改变了互联网架构的航行方向,并给越来越多的企业带来了全新的理念和无限的可能。
在架构的演变过程中,技术体系也在不断革新,过去的技术比较单一,现在我们谈分布式、谈服务化、谈容器调度、谈 Service Mesh、探讨云数据库等。不仅如此,各种前沿的技术都提供了对应的优秀开源解决方案。
那么在当下互联网架构的技术体系中,如何学习和读懂各种新技术,并将它融入自己的技术体系,以更新自己的技能树呢?
二、你知不知道哪些该学,哪些不该学?
Java作为一门语言至今已有20余年历史,无论是语言本身,还是相伴的工具和框架都发生了巨大变化。
- JavaEE框架,从百家混战到现在Spring基本一统天下。
- Web开发,从标配的SSH到现在SpirngMVC + MyBatis组合。
- IDE,从当年如火如荼的JBuilder到Eclipse,再到更好用的IDEA
在不断的技术迭代下,如果摸索出一条高效的学习路径,可以大大的减少自己的时间成本与试错成本。过去半年,我不断的盘整自己的思路,想分享我对高效学习Java的看法。但不足之处是都没有非常系统的梳理。因此,今天刚好趁此机会,我把它们整理起来,希望对大家的学习有所帮助。
spring
在Java EE开发中,Spring已经成为和Java核心库一样的基础设施,所以说如果想成为一个优秀的Java程序员,Spring肯定绕不开。另一方面,如果掌握了Spring体系,Java基本上就算入门了,就有能力进行一些实用级的开发了。
但Spring本身也是日渐复杂,衍生项目越来越多,但最最核心的概念依旧是IOC和AOP,掌握了这两个概念,再把Spring MVC学会,再学习其他的衍生项目就会平滑很多。
同时,因为Spring本身就应用了许多优雅的设计理念,所以学习Spring的过程,也是加强Java基础知识学习的过程。因此等你掌握了Spring,原来很多你理解不透彻的Java特性,此时就会恍然大悟,包括接口、抽象类等。
我学习Spring,读的第一本书是《Spring实战》,坦率的说,书很一般,但市面上比它好的书,我却没有遇到过。还有一本《Spring源码深度解析》也不错,对Spring的设计理念讲的尤其透彻,虽然整本书读起来有些艰涩,但前几章却生动有趣,也是整本书的精华。所以建议你在学习Spring之前,先把该书