偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

八點(diǎn)建議寫(xiě)出優(yōu)雅的Java代碼

開(kāi)發(fā) 后端
本文將為您帶來(lái)八點(diǎn)建議和技巧,以幫助您編寫(xiě)出簡(jiǎn)潔、干練的 Java 代碼。其中的有些可能會(huì)讓你覺(jué)得有些不可思議,但是請(qǐng)相信我,如下的每一條我都親身實(shí)踐過(guò)的。

 [[286604]]

在每一位剛?cè)胄械某绦騿T的心中,編寫(xiě)程序都是一門(mén)神圣的藝術(shù)創(chuàng)作。他們無(wú)不希望自己的代碼作品既簡(jiǎn)潔清晰,又可讀性強(qiáng),而且還具有一定的容錯(cuò)能力。本文將為您帶來(lái)八點(diǎn)建議和技巧,以幫助您編寫(xiě)出簡(jiǎn)潔、干練的 Java 代碼。其中的有些可能會(huì)讓你覺(jué)得有些不可思議,但是請(qǐng)相信我,如下的每一條我都親身實(shí)踐過(guò)的。

1.使用 IntelliJ IDEA 作為您的集成開(kāi)發(fā)環(huán)境 (IDE)

雖然我已經(jīng)使用了六年的 Eclipse 和三年的 NetBeans,而且我仍然偶爾會(huì)使用到它們,但是如今的大部分時(shí)間,我只使用 IntelliJ IDEA。我并不是想在這里展開(kāi)有關(guān) IDE 的大討論,而只是想告訴您,IDEA 能夠根據(jù)其自有的最佳整合實(shí)踐標(biāo)準(zhǔn),持續(xù)提示您寫(xiě)出更短、更好、更簡(jiǎn)潔的代碼。

您只需要按下 Alt + Enter 組合鍵,它就會(huì)自動(dòng)開(kāi)始為您工作了。在大多數(shù)時(shí)候,IntelliJ IDEA 能夠?yàn)槟峁└鞣N智能且實(shí)用的代碼建議。當(dāng)然,您也可以向它學(xué)到不同的編程知識(shí)與技巧。

另外,推薦使用 IDEA 的快捷鍵來(lái)加快編碼速度, IDEA 有很多非常方便的快捷鍵和功能,用的多了自然就熟悉了!

為了更好地獲取 IDEA 的服務(wù)性能,您最好在自己的電腦上采用固態(tài)硬盤(pán) (SSD)。就我自己的那臺(tái)舊式筆記本電腦而言,由于使用的是傳統(tǒng)硬盤(pán) (HDD),它已無(wú)法順暢地運(yùn)行 IDEA 了。因此我個(gè)人建議您至少使用一顆 256 GB 大小的固態(tài)硬盤(pán)。

2.使用 JDK 8 或更高版本

JDK 8 及其更高版本引入了諸如:lambda 表達(dá)式 (lambda expression,一種匿名函數(shù))、功能接口、流式接口 (Stream APIs,提供更為可讀的源代碼實(shí)現(xiàn)方法) 等許多新的功能,這些都有助于您寫(xiě)出更簡(jiǎn)短、更高性能的 Java 代碼。

當(dāng)然,您并不需要去逐一地記住這些功能,因?yàn)榍懊嫣岬降?IDEA 會(huì)幫助您在實(shí)際編程的過(guò)程中,實(shí)現(xiàn)這些功能與服務(wù)。這也就是為什么我首先向您建議使用 IDEA 的原因。

3.使用 Maven/Gradle

請(qǐng)使用 Maven(一個(gè)采用純 Java 編寫(xiě)的開(kāi)源項(xiàng)目管理工具,請(qǐng)參見(jiàn)) 或 Gradle(一個(gè)基于 Apache Ant 和 Maven 的項(xiàng)目自動(dòng)化構(gòu)建工具,請(qǐng)參見(jiàn)) 來(lái)管理代碼中的依賴(lài)關(guān)系,以及構(gòu)建和部署自己的項(xiàng)目。

大部分 Java 后端開(kāi)發(fā)人員都用的是 Maven,或許是因?yàn)閹缀跛?Java 開(kāi)發(fā)者都熟悉 XML。下面我們來(lái)看看 Maven 能為我們做什么。

Maven 能為我們做什么?

  • 我們可以使用 maven 輕松構(gòu)建項(xiàng)目。
  • 我們可以使用 maven 的幫助輕松添加項(xiàng)目的 jar 和其他依賴(lài)項(xiàng)。
  • Maven 提供項(xiàng)目信息(日志文檔,依賴(lài)列表,單元測(cè)試報(bào)告等)
  • 在更新 JAR 和其他依賴(lài)項(xiàng)的中央存儲(chǔ)庫(kù)時(shí),Maven 對(duì)項(xiàng)目非常有幫助。
  • 在 Maven 的幫助下,我們可以將任意數(shù)量的項(xiàng)目構(gòu)建為輸出類(lèi)型,如 JAR,WAR 等,而無(wú)需執(zhí)行任何腳本編寫(xiě)。
  • 使用 Maven,我們可以輕松地將我們的項(xiàng)目與源代碼控制系統(tǒng)(例如 Subversion 或 Git)集成。

4.使用 Lombok

是時(shí)候向setter/getter、ashcode/equals、以及constructors/toString等樣板式代碼 (boilerplate code) 說(shuō)再見(jiàn)了,您只需要一個(gè)注解: @Data 就能統(tǒng)統(tǒng)搞定了。

Lombok 是一款可以通過(guò)簡(jiǎn)單的注解形式,來(lái)幫助開(kāi)發(fā)者簡(jiǎn)化并消除 Java 代碼臃腫的工具 (具體請(qǐng)參見(jiàn))。它不但能夠減少您的代碼編寫(xiě)量,還能夠幫助您打理那些生成的字節(jié)碼。

5.編寫(xiě)單元測(cè)試

可測(cè)試的代碼通常意味著在組織結(jié)構(gòu)上具有更合理、更簡(jiǎn)潔的代碼質(zhì)量。因?yàn)樗鼤?huì)驅(qū)使您去事先管理好各個(gè)類(lèi)之間的關(guān)系、各種方法的訪問(wèn)級(jí)別、以及其他方面。我甚至發(fā)現(xiàn):即使是最小的單元測(cè)試也能夠促進(jìn)更快、更便捷的開(kāi)發(fā)進(jìn)程,進(jìn)而能夠讓自己寫(xiě)出更加短、平、快的 Java 代碼。

當(dāng)然在現(xiàn)實(shí)開(kāi)發(fā)工作中,您總會(huì)聽(tīng)到一些諸如“我根本沒(méi)有時(shí)間來(lái)編寫(xiě)單元測(cè)試”或“項(xiàng)目時(shí)間節(jié)點(diǎn)將至,不要浪費(fèi)時(shí)間些單元測(cè)試了”之類(lèi)的反對(duì)意見(jiàn)。這些聽(tīng)起來(lái)貌似很合理,但是根據(jù)我的經(jīng)驗(yàn),在多數(shù)情況下,事實(shí)并非如此。

如果您沒(méi)有時(shí)間去編寫(xiě)單元測(cè)試,那您是否有更多的時(shí)間,去修復(fù)代碼中那些可見(jiàn)、或不可見(jiàn)的 bug 呢?如果跳過(guò)了單元測(cè)試,那些倉(cāng)促完成的代碼將無(wú)法保證穩(wěn)定性。特別對(duì)于一些新的代碼變更而言,您完全無(wú)法通過(guò)及時(shí)的反饋途徑,知曉那些新產(chǎn)生的代碼是否存在著錯(cuò)誤隱患,是否會(huì)在將來(lái)運(yùn)行的某個(gè)特定場(chǎng)景中產(chǎn)生不可預(yù)知的異常問(wèn)題。

一般而言,Junit 和 TestNG 是兩款非常優(yōu)秀的 Java 應(yīng)用、及單元測(cè)試框架。而我個(gè)人則更喜歡使用 TestNG。

6.重構(gòu):常見(jiàn),但也很慢

簡(jiǎn)潔干練的 Java 程序代碼從來(lái)不是一蹴而就的,它往往需要您進(jìn)行反復(fù)地琢磨與改進(jìn)。通過(guò)逐行進(jìn)行代碼重構(gòu)、和運(yùn)行各種測(cè)試用例,您可以確保自己的更改不會(huì)破壞既有代碼的正確功能。

同樣,IDEA 極大地提供了對(duì)于代碼重構(gòu)的支持,其中包括提取方法 (extract method,將某個(gè)大的函數(shù)拆分為多個(gè)小函數(shù))、重命名、內(nèi)聯(lián) (inline) 等功能。

當(dāng)然,如果您對(duì)代碼重構(gòu)是什么,以及它的作用不太了解的話,Martin Fowler 的經(jīng)典著作《重構(gòu):改善既有代碼的設(shè)計(jì) (第 2 版),Refactoring: Improving the Design of Existing Code (2nd Edition)》絕對(duì)是一本您必備的參考書(shū)。

7.注意代碼規(guī)范

從學(xué)習(xí)編程的第一天起就要養(yǎng)成不錯(cuò)的編碼習(xí)慣,包、類(lèi)、方法的命名這些是最基本的。

推薦閱讀:

 

8.定期聯(lián)絡(luò)客戶(hù),以獲取他們的反饋

最后一點(diǎn),可能也是最重要的:客戶(hù)花錢(qián)讓您通過(guò)編寫(xiě)代碼,來(lái)解決他們的問(wèn)題、滿(mǎn)足他們的需求、并解決他們的痛點(diǎn)。然而,您可能在不知不覺(jué)中花費(fèi)了太多的時(shí)間,去實(shí)現(xiàn)自以為重要、卻對(duì)客戶(hù)無(wú)關(guān)緊要的特殊功能,進(jìn)而忽略了代碼整體的健壯性和可維護(hù)性。那么,我們?cè)趺床拍軌虮M早地發(fā)現(xiàn)該問(wèn)題呢?請(qǐng)保持與客戶(hù)經(jīng)常聯(lián)系,以盡早地獲取他們的反饋。

話說(shuō)回來(lái),知易行難,即使是富有經(jīng)驗(yàn)的產(chǎn)品經(jīng)理也不一定能在較短的時(shí)間內(nèi)領(lǐng)悟需求的真諦,何況是那些滿(mǎn)腦子只注重功能實(shí)現(xiàn)的“碼農(nóng)”們呢?

因此,一個(gè)實(shí)用的建議是:如果您不能直接聯(lián)絡(luò)到最終用戶(hù)的話,請(qǐng)盡量與該系統(tǒng)的產(chǎn)品經(jīng)理、或運(yùn)維人員進(jìn)行禮貌、且頻繁的溝通。磨刀不誤砍柴工,這些時(shí)間的投入對(duì)于后期時(shí)間的節(jié)省是絕對(duì)值得的。

總結(jié)

在過(guò)去的多年編程實(shí)踐和項(xiàng)目應(yīng)用中,我一直受益于上述八點(diǎn)心得。在此,我希望它們也同樣能給您的代碼工作帶來(lái)幫助。祝您編程愉快!

 

責(zé)任編輯:龐桂玉 來(lái)源: Hollis
相關(guān)推薦

2018-12-27 09:00:00

Java代碼編程語(yǔ)言

2012-05-30 15:58:39

Java編程代碼

2012-09-03 14:34:39

Java編程代碼

2023-11-02 09:02:55

Java模式

2009-07-02 10:14:10

雜談優(yōu)化JSP Servl

2015-06-29 09:32:16

iOS 8.4發(fā)布蘋(píng)果

2021-01-04 07:57:07

C++工具代碼

2019-09-20 15:47:24

代碼JavaScript副作用

2022-03-11 12:14:43

CSS代碼前端

2016-08-05 16:19:28

2022-07-25 15:21:50

Java編程語(yǔ)言開(kāi)發(fā)

2023-09-22 12:04:53

Java代碼

2021-04-29 21:54:44

Python代碼語(yǔ)言

2024-12-04 15:10:21

2024-03-28 14:29:46

JavaScript編程

2020-09-17 18:31:54

戴爾

2020-05-14 09:15:52

設(shè)計(jì)模式SOLID 原則JS

2012-07-25 11:04:43

傳真機(jī)

2017-10-10 16:28:51

前端CSS建議

2021-12-07 08:16:34

React 前端 組件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)