成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

幾個友好Java代碼習慣建議

開發 后端
這篇文章記錄了一個優秀的Java開發應該具備哪些良好的開發習慣或最佳實踐。

我工作多年,遇到過各種各樣的同事。我見過各種代碼,優秀的、垃圾的、沒有吸引力的等等,所以這篇文章記錄了一個優秀的Java開發應該具備哪些良好的開發習慣或最佳實踐。

1、封裝方法參數

當你的方法參數過多時,建議封裝一個對象。下面是反面教材,誰教你寫成這樣的代碼?

public void updateX(long num, String str1, String str2,                     String str3, String str4,                    String str5, String str6) {}

盡量把這些輸出封裝到一個對象中。

public class X {    private Long num;    private String str1;    ...}

為什么要這樣寫?例如,您的方法用于查詢。如果以后添加查詢條件,需要修改方法嗎?每次添加時必須更改方法參數列表。封裝一個對象,以后無論添加多少查詢條件,只需要給對象添加字段即可。關鍵是代碼看起來也很舒服!

2、封裝業務邏輯

如果你看過“狗屎山”,你會有很深的感受。這樣的方法可以寫幾千行代碼,沒有什么規則可言。經常負責人會說,這個業務太復雜了,沒辦法改進,是偷懶的借口。無論業務多么復雜,我們都可以通過合理的設計和封裝來提高代碼的可讀性。下面是一個建議的代碼。

@Transactionalpublic void clearBills(Long customerId) {    //獲取清算所需的票據ng    ClearContext context = getClearContext(customerId);    // 驗證該金額是否合法    checkAmount(context);    // 確定優惠券是否可用,并返回可扣除金額    CouponDeductibleResponse deductibleResponse = couponDeducted(context);    // 結清所有賬單    DepositClearResponse response = clearBills(context);    // 發送還款對賬消息    repaymentService.sendVerifyBillMessage(customerId, context.getDeposit());    // 更新帳戶余額    accountService.clear(context, response);    // 處理已清算的息票,用完或未綁定    couponService.clear(deductibleResponse);    // 保存優惠券扣減記錄    clearCouponDeductService.add(context, deductibleResponse);}

這段代碼中的業務非常復雜。估計內部保守做了一萬件事情,但是不同層次的人寫的東西完全不一樣。不得不贊這個業務的拆分,方法的封裝。大企業中有多個小企業。不同的業務可以調用不同的服務方法。

接手的人即使沒有流程圖等相關文件,也能快速了解業務。初級開發寫的很多業務方法都是上一行代碼給業務A,下一行代碼給業務B,下一行代碼給業務A。還有一堆單元邏輯嵌套在業務之間調用,這非常混亂并且有很多代碼。

3、判斷集合類型不為空的正確方法

很多人喜歡寫這樣的代碼來判斷集合。

if (list == null || list.size() == 0) {  return null;}

當然,如果你堅持這樣寫是沒有問題的。

org.springframework.util.CollectionUtils但是你不覺得不舒服嗎,現在框架中的任何一個jar包都有一個收集工具類,比如com.baomidou.mybatisplus.core.toolkit.CollectionUtils. 以后請這樣寫。

if (CollectionUtils.isEmpty(list)) {  return null;}

4、集合類型返回值不返回null

當你的業務方法返回一個集合類型時,請不要返回null,正確的操作是返回一個空集合。看一下mybatis的列表查詢。如果沒有查詢任何元素,它將返回一個空集合而不是 null。否則,調用者必須做NULL判斷,大多數情況下對象也是如此。

5、推薦使用lombok

當然,這是一個有爭議的問題,我的習慣是使用它來省略 getter、setter、toString 等。使用Lombok。

6、編寫盡可能少的工具

為什么要少寫一些工具類,因為你寫的大部分工具類都包含在你引入的jar包中,比如String、Assert斷言、IO上傳文件、復制流、Bigdecimal]等等。編寫自己的錯誤并加載冗余類很容易。

7、寫有意義的方法注釋

寫這種注釋是不是怕后來接手的人瞎了。

要么不要寫它,要么只是在它之后添加一個描述。寫這樣的注釋并從IDEA收到一堆警告很痛苦。

/*** 請求號碼驗證** @param a* @param b* @param param* @return Result*/

8、盡量不要讓IDEA報警

很反感在IDEA代碼窗口看到一連串的警告,很不舒服。因為有警告,說明代碼可以優化,或者有問題。幾天前,我在團隊中發現了一個小錯誤。和我沒有關系,只是同事們在外面看業務,判斷業務為什么錯了。我掃了一眼問題。

因為java中的整型字面量int是類型的,所以它們變成Integer了集合,然后點擊它stepId就是一個long類型,而Long在集合中,那么這contains正確返回false了,它不是一個類型。

你看,如果你注意警告,你可以把鼠標移到上面看一下提示,就會少一個生產bug。

9、盡可能使用新的技術組件

我認為這是一個程序員應該具備的素質。反正我喜歡用新的技術部件,因為新技術組件的出現是解決老技術組件的不足,而作為技術人員,我們應該與時俱進。

當然,前提是做好準備,而不是想當然地升級。Java 17 已經發布了最簡單的例子,新項目仍然使用Date來處理 DateTime。

責任編輯:姜華 來源: 今日頭條
相關推薦

2013-04-03 11:07:34

Android開發良好習慣有用習慣

2009-08-12 13:41:23

Java并發編程并行編程多核

2021-05-29 07:32:14

優秀程序員代碼

2013-04-24 11:33:31

Android開發Android有用習慣

2018-02-02 12:12:46

開始習慣代碼經驗

2014-03-06 09:43:54

代碼編程習慣

2011-11-25 10:35:20

Java

2012-04-27 16:54:57

Java代碼

2022-04-08 14:38:43

程序員習慣終端

2010-06-17 21:34:05

2013-08-08 12:42:33

IT健康飲食習慣IT人士健康

2012-05-30 15:58:39

Java編程代碼

2012-09-03 14:34:39

Java編程代碼

2018-04-08 15:40:09

Java代碼優化

2022-07-25 15:21:50

Java編程語言開發

2021-02-20 23:33:34

TypeScript代碼開發

2010-04-29 12:46:42

Oracle SQL

2025-05-22 08:21:28

2019-12-24 10:40:53

Java代碼編程

2017-11-16 11:26:23

程序員習慣
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产欧美一区二区成人 | 国产精品久久久久一区二区三区 | 国产96色在线 | 久久久久久亚洲精品 | 成人精品一区二区三区中文字幕 | 免费能直接在线观看黄的视频 | 91国自产 | 欧美精品99| 国产成人a亚洲精品 | 黄a网站| 国产午夜精品一区二区三区嫩草 | 国产精品日韩在线 | 日本视频中文字幕 | 日本a级大片 | 国产精品久久久 | 一级毛片视频在线观看 | 亚洲小说图片 | 亚洲国产小视频 | 成人一区二区在线 | www.99re| 美女视频一区二区三区 | 国产一区二区精品在线 | 精品国产黄色片 | 麻豆久久久 | www国产精| 成人一区二区三区在线观看 | 欧美亚洲成人网 | 欧美vide | 日韩在线播放中文字幕 | 国产成人久久久 | 国产伦精品一区二区三区在线 | 日韩视频中文字幕 | 特黄特色大片免费视频观看 | 色婷婷精品| 久久国产精品精品国产色婷婷 | 在线激情视频 | 免费毛片网站在线观看 | 国产精品国产三级国产播12软件 | 日韩精品一区二区三区视频播放 | 在线观看国产精品视频 | 99精品免费视频 |