https://github.com/apache/kafka/pull/17432
背景故事
時光飛逝,2014年JDK8
釋出到現在也十個年頭,作為Java
生態系中的一代宗師,JDK8
為我們鋪上走向函式的康莊大道,也為我們時間管理大師留下各種好用的工具、甚至也允許我們懶惰的工程師使用var
的關鍵字,更不用說那些各種基於String
、Optional
、FIles
等等新增的各種好用的東西。然而十年說長不長說短不短,也是時候也應該是時候,要跟JDK8
說再見了
Kafka
要怎麼跟JDK8
說再見呢?大概分成幾個部分:
首先是專案建置的部分,我們需要把release
改成Java 11
,這是一個神奇的參數,他不只會檢查專案中使用的Java
語法是否合乎範圍,同時也會告訴編譯器所產生的結果是以哪個版本的Java
為主。所以透過這個修改我們就可以開始使用Java 11
的語法,同時使用者也需要以支援Java11
的環境來跑kafka
了。除此之外,我們也必須要把一些套件升級到Java 11
支援的範圍裡,畢竟有些套件可能都還停留在Java 8
的世界裡面。
再來則是測試的調整,在系統測試我們要把Java 8
改成Java 11
,如此我們才可以運行現在的程式碼來跑系統測試,否則我們自己就會踩到自己的腳,升級完後會遇到另一個問題,舊版的Kafka
其實不能跑在Java 11
裡面,所以我們還必須把舊版的Kafka
從系統測試中移除,雖然很難過因為其實我們也準備移除對舊版的相容性了。
最後最後則是文件和程式碼的整理,累積了這麼多年的Java 8
程式碼,專案裡面一定有一大堆髒髒舊舊的東西需要整理,同時我們也要更新文件明確表示Java 8
已經不支援了,也請不要再用Java8來做開發與編譯。
大家看到現在是不是覺得好像很多題目可以做?沒做,正值大整理的Kafka 4.0
,社群上有許多整理的題目可以做,所以如果你對參與Kafka
貢獻有興趣的話,這就會是一個不錯的開始,也歡迎看看下方的廣告來與大家一起湊熱鬧。
廣告
歡迎訂閱全臺最鬆散的開源社群源來適你,上面不定期會有各種開源的廢文。也歡迎參加全臺最鬆散的開源討論頻道,上面有一群網友一起在刷開源技術
題外話
大家最喜歡Java 11
哪些語法呢?我最喜歡的就是var
這個用法,熟知Scala
的人應該已經很習慣了,Java 11
允許大家寫下這種風格的程式碼:
var list = new ArrayList<String>();
相比以前:
List<String> list = new ArrayList<>();
是不是覺得簡化後有看起來更舒服一點?
另外各種方便的結構包裝,例如:
List<String> list = List.of("a", "b", "c");
阿,總之迫不及待讓Kafka
可以享受到Java 11
的好用語法了!