你應該知道的7個寫出更好的 Java 代碼的技巧
原文鏈接:https://dzone.com/articles/7-tips-to-write-better-java-code-you-should-know-1
譯者:Darren Luo
查看這些技巧和竅門可以幫助你寫出更好的 Java 代碼宫静。
是的,你可以按照以下7個技巧和竅門編寫出簡短钉蒲、整潔的 Java 代碼讥电。他們中的一些可能會讓你感到驚訝酱讶,但是相信我交掏,他們通過了實踐驗證——至少是我沈条。
1. 使用 IntelliJ IDEA 作為你的 IDE
我一直使用了 Eclipse 6年酣难,NetBeans 3年让虐。我有時仍然使用他們紊撕,但是大多數時間,我只使用 IntelliJ IDEA澄干。我不想在這里開始 IDE 的圣戰(zhàn)逛揩,但是我只想告訴你 IDEA 將提醒你基于其集成的最佳實踐編寫更簡短柠傍、更好、更清晰的代碼辩稽。你只需要按下 ALT + Enter惧笛,它將為你完成工作。大多數時間逞泄,InterlliJ IDEA 為你提供智能和實用的建議患整;你還可以從中獲得各種新的信息。
為了更好的使用 IDEA喷众,你最好使用 SSD各谚,至少我這么做了——我舊的筆記本電腦無法流暢的運行 IDEA。只需要一個 256G 的 Samsung SSD 就可以讓你的生活更美好到千。如果你仍在使用 HDD昌渤,這是值得投資的。
2. 使用 JDK 8 或更高版本
從 JDK 8 以及 更高版本開始憔四,引進許多新功能將允許你編寫更短膀息、更具表現(xiàn)力的代碼,包括 lambda 表達式了赵、functional 接口潜支、stream API等。你實際上不需要記住他們柿汛,因為 IDEA 將幫助你使用這些功能冗酿,這也是你應該使用 IDEA 的另一個愿意。《Java 8 in Action》 可能對你有所幫助络断。
3. 使用 Maven/Gradle
為你的項目使用 Maven 或 Gradle 來管理依賴裁替、構建和部署。如果你已經構建了許多基礎庫在許多項目中重用妓羊,如果這些庫僅在內部使用胯究,這最好引入 Nexus。否則躁绸,你可以將他們部署到 Maven 中央存儲庫。
4. 使用 Lombok
和 setter/getter臣嚣、hashcode/equals 以及 constructors/toString 這樣的模板代碼說再見净刮。只需要一個注解——@Data
——即可工作。Lombok 減少你編寫的代碼硅则,但是它依然會處理生成的字節(jié)碼淹父。
5. 編寫單元測試
什么?你是認真的怎虫?
是的暑认±Ы椋可測試代碼通常組織的更好、更清晰蘸际,因為它促使你事先管理類的關系座哩、方法的訪問級別以及其他內容。我發(fā)現(xiàn)即使最小的單元測試也會使開發(fā)更快更容易粮彤,這總能驅動你編寫更簡短根穷、更清晰、更好的代碼导坟。
但是屿良,你總會聽到負面的言論,比如“我們有時間編寫單元測試”或“在截至日期來臨時這是在浪費時間”惫周。這聽起來是真的尘惧,有時候,這確實是事實递递。但是大部分時間褥伴,從我的經驗來看,我認為它不是漾狼。如果你沒有時間來編寫單元測試重慢,你將花費更多時間來修復可見或不可見的 bug,而沒有單元測試的快速反饋逊躁,代碼的穩(wěn)定性通常會降低似踱,新的改動通常會減少,有時稽煤,你可能需要認真祈禱核芽,因為你真的不知道將發(fā)生什么或將引入多少新的 bug。
可能一些天才程序員可以寫出不需要單元測試而沒有 bug 的代碼酵熙。但是我不是轧简,你可能也不是。所以去做吧——相信我匾二。
JUnit 和 TestNG 都可以工作哮独;不過我更喜歡 TestNG。
6. 重構:勤而緩
更短察藐、更簡潔的代碼不能一次完成皮璧;它需要反復改進。一點一點的重構并運行測試用例以確保你的更改不會破壞代碼的正確行為分飞。事情會變得越來越好悴务。IDEA 提供了很好的重構支持,比如提取方法譬猫、重命名讯檐、內聯(lián)等羡疗。
如果你不知道什么是重構并想要了解更多,Martin Flower 的書 《Refactoring: Improving the Design of Existing Code (2nd Edition)》 (譯者注:中文版書名叫做《重構:改善既有代碼的設計》)是必備的别洪。
7. 定期拜訪客戶并獲取他們的反饋
老實說叨恨,這應該在列表的頂部,但在這種情況下蕉拢,“最好的都在最后”特碳。你編寫的代碼是為了解決客戶的問題,滿足他們的需求并消除他們的痛點晕换。有時午乓,你浪費了太多時間實現(xiàn)不必要的特性和功能。但是你如何能早點知道呢闸准?定期與客戶保持聯(lián)系益愈,以便盡早得到他們的反饋。然而夷家,這并不像你想象的那么容易蒸其,即使是經驗豐富的產品經理也無法在短時間內獲得信息,甚至比主要關注實現(xiàn)的程序員還少库快。
一個實際的建議是摸袁,如果你無法直接與客戶聯(lián)系,你應該經常與你的產品負責人聯(lián)系义屏,并清楚有禮貌的談談你的問題靠汁,這將節(jié)省很多時間。
我發(fā)現(xiàn)這七個技巧在過去幾年非常有用闽铐,我希望他們也將幫到你蝶怔。快樂的擼碼兄墅!
大家共勉吧 !