大家好,我相信大家在新的一年都有一個良好的開端,并準備好制定一個提升自我技術的目標。作為 Java 開發(fā)人員,我還制定了一些目標,希望在今年成為一名更好的
Java 開發(fā)人員。
如果你尚未制定目標,這將幫助你制定 2020
年的目標。作為一名程序員,我們面臨的最大挑戰(zhàn)是使自己保持不斷學習的狀態(tài)。技術變化非???,每兩年你就會看到新版本的編程語言和框架。
今年也有很多的變化,每 6 個月更新一次 Java 新版本、Spring 5、Spring Security 5 和 Spring Boot 2,對于
Java 開發(fā)人員而言,這可能是最繁忙的一年。
2019 年的時候,我以為 Java 11 是新的,在我無法完全學習 Java 11 之前,Java 12 和 Java 13 已經(jīng)為我們準備好了。自
JDK 9 以來,所有這些 Java 版本都具有許多令人興奮的功能,例如文本塊(多行字符串),switch 表達式,局部變量的 var,API 增強,GC
改進,線程本地握手(機制優(yōu)化)等,我真的很高興能在 2020 年學到這些內容。
Spring framework 和 Spring Security 也是如此的,我還不知道 Spring 4.0 和 Spring Security
4.0 上的所有更改,我的項目仍在使用 Spring Security 3.1,然而現(xiàn)在已經(jīng)有了 Spring 和 Spring Security 的 5.0
版本。
在過去的幾年中,我的學習速度有所下降,還沒有掌握最新的技術,比如容器-Docker 和 Kubernetes,AWS、GCP 和 Azure
等云平臺,單元和集成測試空間的最新變化以及簡化結構的新版本,如 Spring、Spring Security 和 Spring Boot。
因此,2020 年將是讓我自己了解技術方面最重要的事情,探索 DevOps 和云計算領域,特別是 Docker、Kubernetes 和 AWS 的
Jenkins。
分享一張后端路線圖(國外的一位大佬總結的),可以去圖中的網(wǎng)站下載,或者在【武培軒】微信公眾號回復【路線圖】獲取。
2020 年 Java 開發(fā)人員可以學習什么?
這是我認為 Java 開發(fā)人員應該在 2020 年學習的東西,很可能你已經(jīng)了解了其中的大多數(shù),但是更好地學習它們并進行深入研究不會對你有害處的。
1.容器(Docker 和 Kubernetes)
你可能已經(jīng)聽說過 Docker 和 Kubernetes 等容器技術,以及它對 DevOps 團隊的影響。Kubernetes
是你可以學習的最重要的工具之一,并且將陪伴你的整個職業(yè)生涯。
如今,無論是大型企業(yè)還是小型創(chuàng)業(yè)公司,幾乎每個開發(fā)團隊都使用 Docker 和
Kubernetes??梢钥隙ǖ卣f,如果你現(xiàn)在開始學習,很有可能在工作中的某個時候用到 Docker 或 Kubernetes。
簡而言之,無論你是初級 Java 開發(fā)人員還是經(jīng)驗豐富的資深人士,擁有 Docker 和 Kubernetes 知識對于你的職業(yè)發(fā)展和工作變動都是至關重要的。
2.云平臺(AWS 、GCP 或 Azure)
除了容器,云是我認為每一位軟件開發(fā)人員都應該在 2020
年學習的另一件事。各種規(guī)模和領域的公司現(xiàn)在都在將其環(huán)境遷移到云中,以節(jié)省成本和更好的可擴展性,這意味著你遲早要需要使用云原生應用程序。
它們對于數(shù)據(jù)科學,機器學習和人工智能領域中的迅猛發(fā)展是緊密相連的,因為只有云才能提供那些資源匱乏的模型所需的計算能力。
像 Amazon Web Service(AWS),Google Cloud Platform(GCP)或 Microsoft Azure
這樣的學習型云平臺不僅在你當前的工作上。你不需要學習所有這些知識,實際上,學習一種知識意味著你將對其他事物有一個公平的想法。
如果你要學習云平臺相關的知識,那么我首先建議你學習 AWS,因為它是最流行和最成熟的云平臺。
3. Git
Git 和 Github 已經(jīng)使用有一段時間了,雖然我過去在 IDEA 中使用過 Git,但是在命令行上我對 Git 還不是很熟悉。
為什么到目前為止我還沒有掌握 Git?只是因為我還不需要它,我偶爾會從 Github 下載項目并從 IDEA 運行,但是我仍然是 Git 新手。
從現(xiàn)在開始,大多數(shù)公司都將其項目從 SVN,CVS 遷移到 Git,這也是學習和掌握 Git 的重要時機。
4.單元測試(JUnit 和 Mockito)
我想在來年改進的另一個領域,Java 程序員可以使用許多新的框架和工具進行單元測試,并對其應用程序進行集成測試,例如用于模擬對象的 Mockito 和
PowerMock,用于自動集成測試的 Robot Framework 和Cucumber,當然還包括新的 JUnit 5 庫。
在這方面有很多東西要學習,如果你可以花一些時間來提高單元測試技能,那么不僅可以提高你的編碼專業(yè)知識,而且可以使你成為更專業(yè)的開發(fā)人員,每家公司都將以此為形式。
5.從 JDK 9 到 13 的新 Java 功能
正如我過去所說的那樣,我像許多 Java 開發(fā)人員一樣仍在努力追趕六個月發(fā)布一次的 Java 版本。我今年花了一些時間學習 Java 9、10、11 和
12 的新功能,但是對我來說,直到我使用 LTS 發(fā)行版 Java 13 之前,Java 11 仍然是優(yōu)先事項。
JDK 9 在模塊,拼圖,反應流,Process API,HTTP2 客戶端,JShell 和 API
改進(如集合工廠方法)方面帶來了很多好處,我非常希望能盡早學習它們。
同樣,JDK 10 帶來了var,使你可以進行動態(tài)類型化和 GC 改進。然后,在JDK 12 和 JDK 13 的 Switch 表達式、文本塊。
6. Spring Framework 5+
自從我們看到 Spring 和 Java Ecosystem 進行了許多重大升級以來已經(jīng)有兩年了,Spring Framework 5.0
就是其中之一。我一直在聽說一些新功能,例如 Spring 5 的反應式編程模型,Java 8 和 9 的采用,某些單元測試的改進等,但是我還沒有嘗試過。
無論如何,我已經(jīng)開始學習 Spring 5.0.0,并將保持這種勢頭在 2020 年持續(xù)下去。如果你使用 Spring,可能是學習 Spring 5.0
的最佳時機。
7. DevOps(Jenkins)
去年,隨著越來越多的公司進入DevOps并采用持續(xù)的集成和部署,這是另一個吸引我的領域。
DevOps 非常龐大,你需要學習很多工具和原理,這就是讓很多開發(fā)人員不知所措的原因,但你不必擔心。下面分享了一個大佬總結的 DevOps
路線圖(公眾號【武培軒】回復【路線圖】獲?。?,你可以按照自己的速度學習和掌握 DevOps,尤其是 Jenkins。
這意味著,如果你是一位經(jīng)驗豐富的 Java 程序員,并且熱衷于管理環(huán)境,自動化和改善整體結構,那么你可以成為DevOps 工程師。
8. RESTful Web 服務
我想在 2020 年繼續(xù)改進的另一件事是我對編寫 REST API 以及使用 Spring 使用 Java 實現(xiàn)安全且可擴展的RESTful Web
Service 的了解。
這是 Java 世界中非常需要的一項技能,并且很少有人同時了解 Java 和 REST。如果你也一樣,并且想學習如何使用Spring 開發(fā) RESTful
Web Service,那么讓我們一起在 2020 學習。
9. Spring Security 5.0(OAuth)
Spring Security 是一個能夠為基于 Spring 的企業(yè)應用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在 Spring
應用上下文中配置的 Bean,充分利用了 Spring IoC(控制反轉),DI(依賴注入)和
AOP(面向切面編程)功能,為應用系統(tǒng)提供聲明式的安全訪問控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫大量重復代碼的工作。
這是 Spring 生態(tài)系統(tǒng)的第三次重大升級,Spring Security 5.0.0 的主要亮點在于它只需要最小化的 JDK
8、反應式安全特性、OAuth 2.0(OIDC)和現(xiàn)代密碼存儲,你絕對不能錯過。
與 Spring 5.0 框架一樣,這是 2020 年我的另一個優(yōu)先事項。
10. Spring Boot 2 和微服務
Spring Boot 2.0 中引入了眾多令人激動的新特性,包括支持 Java 9、HTTP/2、基于 Spring 5 構建、強力集成 GSON 等等。
那么在時間允許的情況下,你還應該花一些時間學習 Spring Boot 2 和微服務,我相信它會給你帶來不一樣的體驗。
11. Apache Spark 和 Kafka
我想在 2020 年繼續(xù)深入探索的另一件事是大數(shù)據(jù),主要是 Apache Spark 和 Apache Kafka
框架。我不確定是否有時間去看其他大數(shù)據(jù)技術,但是它的好東西和大數(shù)據(jù)可能是目前最熱門的技術。
總結
這就是 Java 程序員在 2020
年可以學到的一切嗎?就像我說的那樣,技術日新月異,程序員面臨的最大挑戰(zhàn)是使自己保持不斷學習的狀態(tài)。除了以上這些技術外,肯定還有很多其他的東西,你可以查找在新的一年就像學習一門新的編程語言如
Kotlin,但對我來說,如果我能在 2020 年實現(xiàn)這些目標,我會更高興。
熱門工具 換一換