对于 Java 开发人员来说, 最近几年的时间中, Java 生态诞生了很多东西. 以下是我列出的 2020 年 Java 开发者应该学习的技术:
对于 Java 开发人员来说, 最近几年的时间中, Java 生态诞生了很多东西. 每 6 个月更新一次 Java 版本, 以及发布很多流行的框架, 如 Spring 5,Spring Security 5 和 Spring Boot 2 等, 这些都给我们带来了很大的挑战.
在 2019 年初, 我认为 Java 10 还是比较新的, 但是, 在我学习完所有 Java 10 的特性之前, Java 11,Java 12,Java 12 已经接踵而至, 对于工作繁忙的程序员们来说, 大多数人都根本没有时间看这些. 基本是都是了解一些有用的新特性而已.
Java 的版本迭代速度实在是太快了, 也带来了很多有趣的特性, 如本地变量类型推断, switch 表达式, 文本块支持等. 我在 Java 9 ← 2017,2019 → Java 13 , 都发生了什么? 中记录了这些变化.
Java 系第一大框架, Spring 亦是如此, 很多人的项目还在用 Spring Security 3.1 , 甚至不知道 Spring 4.0 和 Spring Security 4.0 都有哪些特性. 但是, Spring 和 Spring Security 都已经出到了 5.0 版本.
以下是我列出的 2020 年 Java 开发者应该学习的技术:
1,DevOps (Docker and Jenkins)
过去的一年, 越来越多的公司正在转型 DevOps,DevOps 非常庞大, 需要学习很多工具和原理, 但你不需要担心. 有大神已经分享了 DevOps 路线图(https://github.com/kamranahmedse/developer-roadmap, 可以按照这个路线图以自己的速度学习和掌握 DevOps.
如果你是一个有经验的 Java 程序员, 愿意学习环境管理, 自动化和整体改进, 你也可以成为 DevOps 工程师.
2,Java 9 - Java 15
相信现在很多 Java 开发人员主要使用的 Java 版本还是以 Java 8 为主, 虽然 Java 9 - Java 13 已经推出了有一段时间.
但是作为 Java 程序员, 我们可能因为某些原因没办法在线上环境真正的进行 JDK 的升级, 但是花一些时间学习 Java 9,Java 10,Java 11,Java 12 和 Java 13 的新特性还是有必要的.
另外, 大家可以重点关注一些关键特性, 如 GC 相关的特性, 对编码风格有改变的特性等. 还有就是 Java 的 LTS 版本 (Java 8,Java 11) 要重点学习.
还要提醒大家一点, 在 2020 年, Oracle 还会推出 Java 14 和 Java 15!!! 如果你在使用 Java 7 的话, 马上就要被 "套圈" 了!
3,Spring Framework 5
2017 年我们见证了 Spring 和 Java 生态系统的许多重大升级, Spring 5.0 就是其中之一. Spring 5 的新反应式编程模型, HTTP/2 支持, 以及 Spring 通过 Kotlin 对函数式编程的全面支持这些都值得我们好好了解一下.
4,Spring Security 5.0
Spring Security 5.0 提供了许多新功能, 并支持 Spring Framework 5.0, 总共有 400 多个增强功能和 bug 修复. 在 Spring Security 5.0.0 之前, 密码是明文保存, 十分不安全. 因为这一次发布的是大版本, 所以我们决定使用更安全的密码存储方式. Spring Security 5.0.0 的主要亮点在于它只需要最小化的 JDK 8, 反应式安全特性, OAuth 2.0(OIDC)和现代密码存储.
5,Spring Boot 2
Spring Boot 2.0 基于 Spring 5 Framework , 提供了 异步非阻塞 IO 的响应式 Stream , 非堵塞的函数式 Reactive web 框架 Spring WebFlux 等特性. 很多使用过 SpringBoot 的人都知道, 使用 SpringBoot 搭建 Web 应用真的是又快又好, 相信 Spring Boot 2 会带来更多惊喜.
6,Hadoop,Spark 和 Kafka
另外在 2020 年 Java 程序员需要学习的是大数据相关的知识. 特别是 Apache Spark 和 Kafka 两个框架.
如果你也想在 2020 年学习大数据, 也一定绕不开 Hadoop 生态.
7,Elasticsearch
全文搜索属于最常见的需求, 开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选. 维基百科, Stack Overflow,GitHub 都在使用它.
Elasticsearch 是一个基于 Lucene 库的搜索引擎. 它提供了一个分布式, 支持多租户的全文搜索引擎, 具有 HTTP Web 接口和无模式 JSON 文档. Elasticsearch 是用 Java 开发的, 并在 Apache 许可证下作为开源软件发布.
8,ServiceMesh
这两年很火, 火的一塌糊涂. 在 2019 年, 但凡是程序员相关的大会, 如果没有讲 ServiceMest 的专题, 那都不好意思开.
所有人都在说 ServiceMesh;
几乎没人知道怎么落地 ServiceMesh;
但是大家都觉得其他人在大力做 ServiceMesh;
所以大家都宣称自己在做 ServiceMesh;
这个号称下一代微服务架构的概念, 现在对于大多数人来说根本不知道是啥. 只知道很多大厂宣称自己在做, 很多大牛在布道.
9,Serverless
无服务器运算 (英语: Serverless computing), 又被称为功能即服务(Function-as-a-Service, 缩写为 FaaS), 是云计算的一种模型. 以平台即服务(PaaS) 为基础, 无服务器运算提供一个微型的架构, 终端客户不需要部署, 配置或管理服务器服务, 代码运行所需要的服务器服务皆由云平台来提供. 这东西, 听上去就很高大上.
2019 年, 和 ServiceMesh 一样, 所有人都宣称自己在做. 但是又很很多人不知道他到底是什么.
10,Kotlin
如果大家有关注 Java 13 的新特性的话, 一定知道推出了字符串文本块的功能, 这个功能其实是借鉴的 Kotlin, 除此之外, 最近几年, Java 有很多特性都在借鉴 Kotlin, 相比较于 Java,Kotlin 更加简洁, 而且 Kotlin 编出来的代码也可以直接通过 JVM 运行.
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言, 它也可以被编译成为 JavaScript 源代码. Kotlin 的设计初衷就是用来生产高性能要求的程序的, 所以运行起来和 Java 也是不相上下. Kotlin 可以从 JetBrains InteilliJ Idea IDE 这个开发工具以插件形式使用.
总结
以上, 就是作者总结的建议 Java 程序员在 2020 年学习的一些技术, 其中有一些是一定要学习的, 还有一些是看大家的精力情况酌情考虑.
来源: http://developer.51cto.com/art/202001/609437.htm