1. 程式人生 > >2018年Java開發值得學習的10大技術

2018年Java開發值得學習的10大技術

作為一個開發人員,我們最大的挑戰就是保持自己瞭解新的技術。技術變化很快,你大概每兩年就會看到一個新版本的程式語言和框架。

就拿2017年來說,AR、VR、區塊鏈、人工智慧等等已經撲面而來了。除了這些離我們較遠的,說幾個離我們最近的:JDK 9、 Spring 5、 Spring Security 5、 Spring Boot 2、ServiceMesh等。這一年對於一個Java開發來說可能是最忙碌的一年了,我們還在學習使用Java 8的Stream API的時候,Java 9的模組化已經來了。除此之外,JDK 9 還有很多有趣的功能如Jigsaw、JShell、Stack-Walking API等,所以,僅僅是這些東西足夠2018年的你好好學習一番了。

再拿Spring來說說,可能情況更加嚴重,毫不客氣的說,很多人可能還不知道Spring 4有哪些特性,甚至專案中還在用Spring 3.1 ,更別提新出來的Spring 5、 Spring Security 5這些東西了。想想有多可怕,我們現在用的竟然是五六年前的技術。

前幾天在幫GitChat審稿的時候,有一篇文章名字大概叫《搭建企業級專案》之類的文章,但是仔細一看,裡面的內容竟然還是讓開發者通過匯入jar包的方式搭建SSH環境,看到這裡,我真的有點擔憂,尤其那些初級Java開發者,甚至是還沒畢業的你。或者是很多工作了多年的你。新技術,請學起來!!!跟我一起!

下面是我列的我的2018學習清單(和Java相關部分),供你參考。

01 Gradle

Java世界中主要有三大構建工具:Ant、Maven和Gradle。經過幾年的發展,Ant幾乎銷聲匿跡,還剩Maven和Gradle兩種,maven是我目前工作中用的版本管理工具。maven現在已經是行業標準,Gradle算是後起之秀,很多人對他的瞭解都是從android studio中得到的,Gradle拋棄了Maven的基於XML的繁瑣配置。取而代之的是Gradle採用了領域特定語言Groovy的配置,大大簡化了構建程式碼的行數。

正好也可以藉著學習Gradle的機會深入學習一下Groovy。

02 Python

最近我已經在開始學習Python了。最初想學習他的動機是想借助Python做一些爬蟲、資料分析相關的事情。作為一種語法簡單的高階語言,Python有很多優點。對於一個Java程式設計師來說,學習Python是很容易的。

在StackOverflow2017開發者調查中。所有最受歡迎的語言中,Python超越PHP位居第五,在你最希望使用哪種語言排行榜中,Python 奪冠,而去年僅僅第四。所以,如果你準備學習一門新的語言,Python絕對是個很好的選擇。

03 Java 8 和 Java 9

就像我說的,我和絕大多數Java開發人員一樣,仍然在學習Java 8。2018年仍然會繼續學習並大量使用Java 8。

我也會花一些時間學習Java 9的新特性,比如Jigsaw, Reactive Streams, Process API, HTTP2 client, JShell等也在學習清單中。

04 Spring 5

2017年我們見證了見證了Spring和Java生態系統的許多重大升級,Spring 5.0就是其中之一。

Spring 5 的新反應式程式設計模型、HTTP/2 支援,以及 Spring 通過 Kotlin 對函數語言程式設計的全面支援這些都值得我們好好了解一下。

05 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)和現代密碼儲存。

06 Spring Boot 2

Spring Boot 2.0 基於 Spring 5 Framework ,提供了 非同步非阻塞 IO 的響應式 Stream 、非堵塞的函式式 Reactive Web 框架 Spring WebFlux等特性。

很多使用過SpringBoot的人都知道,使用SpringBoot搭建Web應用真的是又快又好,相信Spring Boot 2會帶來更多驚喜。

07 Apache Spark 和 Kafka

另外一件2018年要深入學習的是大資料相關的知識。特別是Apache Spark 和 Kafka兩個框架。

我不確定我是否會有時間看其他大資料技術,這兩個至少在當前還是比較火的。

08 ServiceMesh

顯然,這是個新東西,很新。或許在讀這篇文章的你並沒有聽說過。那麼恭喜你,此時此刻你已經在這個方面超過了大部分程式設計師。

ServiceMesh,他被業內譽為下一代微服務,現在整個領域都處於初級階段。早學早受益。

09 Serverless

無伺服器運算(英語:Serverless computing),又被稱為功能即服務(Function-as-a-Service,縮寫為 FaaS),是雲端計算的一種模型。以平臺即服務(PaaS)為基礎,無伺服器運算提供一個微型的架構,終端客戶不需要部署、配置或管理伺服器服務,程式碼執行所需要的伺服器服務皆由雲平臺來提供。

這東西,聽上去就很高大上。

10 Others

Docker 、MicroService、Kubernets、Spring Cloud、Redis…