這8個錦囊是作爲一名Java程序員必備之物!

私底下,隔三差五就有讀者問我:“二哥,怎麼樣才能像你一樣,成爲一名優秀的 Java 開發者呢?”假如把“怎麼才能像你一樣”去掉的話,這個問題就是一個好問題,否則的話,總有點彩虹屁的嫌疑。但話說回來,我喜歡這種提問的藝術。

從上大學那會學 Java 到現在,我已經積攢了 10 多年的編程經驗,雖然離優秀還有很長的距離,但總歸是可以分享一些心得給你,這對你來說,算不上至關重要,但多少是有點用的,至少在我看來。

01、學習 Java 8


如果我沒記錯的話,已經 Java 14 了。但很遺憾的是,我的 IDE 中配置的 JDK 版本還停留在 Java 13,還有一個備用版本,就是 Java 8。之所以沒有追趕時髦,可能是因爲學習的勁頭不像年輕時候那麼足了,讓我先慚愧一會兒。

還有一個客觀上的原因,就是 Java 8 的新特性實在是開天闢地、空前絕後。像 Lambda 表達式,Stream 流,可以稱得上是好用到爆。事實上,還有不少 Java 程序員沒有掌握它們(扎心了吧)。

Java 8 之前,啓動一個線程要這樣:

Thread t = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Java 8 之前");
    }
});
t.start();

Java 8 之後,啓動一個線程只需要這樣:

Thread t1 = new Thread(() -> {
    System.out.println("Java 8");
});
t.start();


孰優孰劣,一清二楚。如果你對 Java 8 的特性還不瞭解的話,那真的很難成爲一名優秀的 Java 開發者。還是那句耳朵能聽出來繭子的話:“種一棵樹最好的時間是 10 年前,其次是現在。”行動起來吧!

02、掌握 Spring


Spring 目前在 Java 開發中佔據了重要的一環,可以說是密不可分。毫不誇張的說,不會 Spring,絕對算不上一名優秀的 Java 開發人員。我敢賭 1 塊錢,幾乎所有采用 Java 語言編寫程序的公司,都在用 Spring 框架。

雖然我沒有賭錢的惡習,但我敢保證自己能贏。只賭 1 塊錢,不是我摳門,而是爲了輸家考慮,這點錢不至於賴賬吧。

架構在與時俱進,就連小到只有兩三個人的開發團隊都在從單一應用程序遷移到微服務。這就是所謂的浪潮吧,而 Spring Boot 和 Spring Cloud 在這方面有着天然的優勢。

03、學會單元測試


我在日企的時候,測試佔據着重要的位置,代碼 review、單元測試、集成測試等等忙得是不亦樂乎。但當我回到洛陽後,團隊就完全沒有這種測試的文化,雖然我在竭力倡導,但效果不佳,搞得很多問題都在線上突發,最後疲於應付。

如果你想成爲一名負責任的開發人員,那就好好磨練你的測試技能吧。JUnit 和 TestNG 是 Java 中非常受歡迎的單元測試框架。設計 JUnit 的目的是爲了分析代碼單元,而 TestNG 的預期用途則針對高級測試。這兩個框架不能說是平分秋色,但最起碼是各有千秋。

04、熟練 API 和類庫


我有一個大學同學,叫石磊,編程能力絕對配得上在一線大廠工作。可惜的是,當初選擇了二線城市鄭州,這在很大程度上侷限了他的發展。

當我遇到任何編程上面的問題時,第一個想到的就是石磊,無論我扔什麼問題,他幾乎都能給我提供解決方案,他對整個 Java 的生態系統(自身的 API 以及開源類庫)瞭解比我要透徹得多。

如果你希望成爲石磊那樣富有擔當,就必須要先了解下面這些類庫。

1)日誌類庫,比如說 Log4j、SLF4j、LogBack。

2)JSON 解析類庫,比如說 Gson、Jackson、org.json 和 fastjson。

3)測試類庫,比如說之前提到的 JUnit 和 TestNG。

4)通用類庫,比如說 Google 的 Guava,Apache 的一系列類庫。

5)HTTP 類庫,比如說 HttpClient 和 HttpCore。

6)Word、PDF、Excel 類庫。

7)數據庫連接池類庫,比如說 durid、HikariCP。

8)消息通知類庫,比如說 RabbitMQ、Kafka。

9)郵件類庫,比如說 JavaMail。

10)加密解密類庫。

05、學習設計模式


學編程就像練武功一樣,武功要練得很牛逼,有兩樣東西不能丟。第一,是內功;第二,是武功祕籍。內功對應到編程就是我們編程基礎能力,那編程的設計模式就可以想象成武術中的武功祕籍。

設計模式就是根據不同類型場景,設計優雅的(編碼)解決方案。學好設計模式有很多好處,比如,容易看懂經典代碼中的邏輯(很多優秀的開源框架大量使用了設計模式);應對面試時對答如流(設計模是面試重點);可以編寫出優雅的解決方案(或者代碼)。

如果你想學習設計模式的話,我推薦一本秦小波的《設計模式之禪》,趣味化十足,讀起來也非常容易理解。

06、掌握開發運維工具


如果你能夠熟練掌握 Maven、Git、Jenkins、Docker 等持續集成和部署工具的話,在進行開發運維的時候就會感覺如有神助。我來隆重地介紹一下這 4 位同學:

Maven,是一個(特別是 Java)軟件項目管理及自動構建工具,由大名鼎鼎的 Apache 軟件基金會所提供,基於項目對象模型(縮寫爲 POM,知道那個 xml 文件的由來了吧)的概念,利用一箇中央倉庫來管理項目的構建和文檔等步驟。

Git 是一個分佈式版本控制軟件,最初由林納斯·託瓦茲創作,於 2005 年以 GPL 的開源協議發佈。大型交友平臺 Github 就是用 Git 做版本控制的代碼託管平臺。

Jenkins 是一款由 Java 編寫的開源的持續集成工具,使開發者從繁雜的集成工作中解脫出來,專注於更爲重要的業務邏輯實現上。

Docker 讓應用程序部署在軟件貨櫃下的工作實現了自動化,藉此在 Linux 操作系統上提供一個額外的軟件抽象層,以及操作系統虛擬化的自動管理機制。

07、熟練使用 IDE


說起 IDE,讓我情不自禁地想起一句古話:“工欲善其事必先利其器”。IDE 就好像士兵手裏的那把搶和刀,這玩意如果用得不熟練,怎麼上陣殺敵呢?

我是在去年的時候才從 Eclipse 切換 IntelliJ IDEA 的,一開始極其排斥和抗拒,讀者都勸我堅持用一段時間,沒想到一個月後就愛上了。你要是非要給我扣上個“喜新厭舊”的帽子,我也是毫無反駁的理由,誰讓這玩意這麼好用呢?

上次推薦了兩個提高代碼質量的 IDEA 插件,沒想到,大家都說好,你如果想變得優秀的話,趕緊去試試。

08、瞭解 JVM


要想成爲一名真正優秀的 Java 開發人員,JVM 這關注定是繞不過去的,就好像你費盡幾代人的心血蔘加了童試、鄉試、會試,最後要是中不了進士,那就有點前功盡棄。

你必須得搞清楚 JVM 的工作原理、即時編譯(JIT)、垃圾收集等相關知識點,纔可以編寫出健壯且高性能的 Java 應用程序。如果想系統性的學習,我推薦周志明的《深入理解 Java 虛擬機》,這是本爲數不多被讚譽有加的國內程序員寫的書。

好了,我親愛的讀者朋友,以上就是本文的全部內容了,能看到這裏的就是最優秀的程序員。原創不易,莫要白票,請你爲本文點贊吧,這將是我寫作更多優質文章的最強動力。

 

如果覺得文章對你有點幫助,請微信搜索「 程序員Style 」第一時間閱讀,回覆相關關鍵字 可獲取我爲你精心準備的 電子書、高清教學視頻、面試題以及大廠技術牛人整理的面試經驗等。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章