不知不觉 2019 年已经是 Java 面世的第 21 个年头了,在这 21 年间 Java 技术发生了翻天覆地的变化,特别是近几年的数个版本中不断的加入新特性,无论是各种语法糖,lambda 表达式, 还是新的 ZGC 垃圾搜集算法, 都让人有乱花渐欲迷人眼的感觉。本文会带你盘点 2019 年最值得投入深挖的 Java 技术,把宝贵的精力投入到最有价值的学习中去!
Spring & Spring Boot & Spring Cloud
Spring 对于 Java 后端程序员而言就犹如空气和水,是一个应当必知必会的框架。在 2017 年 Spring 发布了 5.0 的正式版本,距离上个 4.0 版本的发布整整过去了 4 年,可见此次升级的重要性。 如果你的知识储备还是停留在 Spring 4.x ,甚至是 3.x ,那我的建议是尽快学习新版本的相关知识,因为它带来的提升是巨大的,特别是两年后的今天,新版本的稳定性已经得到了验证,可以毫无顾忌的在生产环境使用。
除去各种 API 的优化及易用性的提升, 5.0 最大的两项提升是对 Java 基线版本支持的升级和对 Reactive 的支持。在新版本中 Spring 将支持 Java8 及以上版本,这就意味着你的代码可以使用 lambda 等新增的语言特性以及将来向 Module 迁移的可能性。
Reactive 的优点有目共睹,Spring 提供了对应的 API 接口以及针对 Web 层和持久层的封装,使用非常的便捷。
如果觉得 Spring 框架稍显臃肿复杂,那你的首选必然是基于 Spring 之上的 Spring Boot。在 Spring 的主版本升级后,Spring Boot 也紧随其后,推出了基于 5.x 的 Spring Boot2。一如既往的简化配置,提供了开发中需要的各方面功能,包括权限,单元测试,配置管理等。新增的 Webflux API,帮助开发人员快速开发基于 Reactive 模型的 Web 应用。各个支持框架的版本也一并提升,由此可以快速构建一个 Java App Server。
当 Spring Boot 解决了我们构建单体应用, Java 稍显繁琐的问题时,让我们把目光更加拔高一层,来思考一下各个服务之间的架构模型。从 2014 年被提出,微服务的架构体系已经被广泛使用。它的优点显而易见,但是在带来架构弹性的同时也带来了大量的复杂性,如何处理这些问题是体现开发人员和架构师价值的地方。幸运的是 Spring Cloud 已经给出了这些问题的解决方案,包括统一的配置管理,服务发现,服务降级/熔断,负载均衡,API 网关等功能,帮助开发人员搭建一套稳定,健壮的微服务架构。
对于 Spring 全家桶,应当深入的学习,在条件允许的情况下应该阅读核心代码,加深对于框架的认识。确保自己熟练掌握框架的原理以及核心 API,对于之上的 Spring Boot 和 Spring Cloud 能够在工作中熟练使用,用以构建稳定的应用。
Java Module
平心而论 Java 的模块化设计在主流编程语言里已经算是较为完善的了,但是一直缺乏在模块层面的支持。之前的 OSGi 在使用上较为繁琐,而基于 ClassLoader 的实现缺乏原生的支持,导致大部分的框架和中间件都不支持,虽然诞生了很多年,但是仍然用者寥寥。
在几个公司之间博弈了很久之后,JCP 终于在 Java9 中推出了代号 Jigsaw 的模块化解决方案,在 Java 平台层面开始全面支持模块化。虽然目前为止 Java Module 仍然存在不少问题,但是可以看出这必将是未来技术的趋势,事实上越来越多的框架和中间件支持模块化的构建和使用方式。
通过模块化,开发人员可以 Jar 层面来控制程序的可见性,可以控制对于哪些外部组件暴露自己的哪些接口,完成更加细粒度的可见性控制。在实际项目中不同的开发小组也能专注于完成自己的组件开发,而不需要担心会向外部系统过分暴露内部特性,导致组件之间的耦合。
Reactive
这几年来 Reactive 编程模型已经被业界广泛接受,更易用的状态管理,更好的性能扩展能力让 Reactive 成为高性能编程的一个利器。Spring 等主流框架都逐渐加入了对 Reactive 的支持,足以说明它的吸引力。
之前在 Java 中主要以类库或是框架的形式提供 Reactive 的支持,例如 RxJava,Vert.x 等。在 Java9 中正式加入的 Streams 接口,为开发人员提供了 Reactive 编程模型的统一接口和 API,理想情况下,开发人员可以在各种 Reactive 框架之上的抽象层编程,根据项目的实际需要进行切换。
19 年将会成为 Reactive 在 Java 世界中成熟的一年,相信更多的框架和中间件会提供对其的支持,作为一个开发者,应当能够熟练掌握 Reactive 的相关框架,并了解其原理。所以投入相当的精力来学习 Reactive 的相关知识也是物有所值的。
Kotlin
除了 Java 能够在 JVM 之上运行的编程语言已经不少了,包括 groovy,scala,clojure 等,但是在 19 年最值得学习的 Java 系编程语言应该是 Kotlin。
Kotlin 的历史并不短,早在 2011 年就已经面世了。虽然 Kotlin 背后的 JetBrains 是一个低调内敛的公司,但是 Java 届的每一项大事都有它的身影。它的 Intellij 被誉为「最好的 Java IDE」,之后又对 Google 官方的 Android IDE,Android Studio 提供技术支持,足以证明他们的技术能力。
在 2017 年的 Google I/O 大会上,Google 官方宣布 Kotlin 作为 Android 平台第一级别支持的开发语言,使得 Kotlin 在移动开发领域拥有了一席之地,获得了官方的认可。在服务器端,Spring Boot 也加入了对 Kotlin 的支持,另 Java 后端开发人员也能享受 Kotlin 带来的便利。
因此作为一个 Java 程序员,无论你从事的是移动端还是后端,Kotlin 都能在实际工作中为你带来高效,便捷的编程体验。更加全面安全的类型体系,更纯粹的函数式编程环境,大量的语法糖以及对模式匹配的支持,这些特性弥补了 Java 原生的不足之处。和 Java 类似的编程模型和语法让 Java 程序员非常有亲切感,降低了学习曲线,非常容易上手。学习这样一门前后端通吃,用途广泛的语言实在是一项高回报的投资。
结语
总结一下我们 2019 年的 Java 学习计划:
学习 Kotlin 作为 Java 平台的第二门语言
熟练掌握 Spring,Spring Boot 的最新版本,竟可能的在生产环境使用这些框架
了解 Java Module 的相关知识,升级 Java 的版本,实践基于 Module 的架构模型
了解 Reactive 的原理,掌握 Java Streams 的 API,在项目中引入 Reacitve 相关框架解决实际问题
希望大家的 2019 年都能在正确的方向上高歌猛进,成为一个站在最前沿的 Java 程序员!
15年从业经验,不仅在国内著名的大型金融集团做过甲方,担任高级系统架构专家角色,也在第一梯队的互联网公司金融部门做过数据智能相关工作。
也曾任职于大型系统集成商,负责保险,银行核心系统的落地和实施,也在创业团队从0到1研发产品,在业界获得很高的占有量。
如果感兴趣可以加我公众号,搜索“且把金针度与人”或个人微信
网友评论