(六)改掉這些壞習慣,還怕寫不出精簡的程式碼?

語言: CN / TW / HK

魯迅說:嬉笑怒罵裡充滿了無奈和妥協。

小猿說:先生說的不對,在程式設計師的世界裡,編寫程式碼處處充滿了無奈和妥協。

(一)改掉這些壞習慣,還怕寫不出健壯的程式碼?

(二)改掉這些壞習慣,還怕寫不出優雅的程式碼?

(三)改掉這些壞習慣,還怕寫不出優雅的程式碼?

(四)改掉這些壞習慣,還怕寫不出健壯的程式碼?

(五)改掉這些壞習慣,還怕寫不出精簡的程式碼?

上次討論了一下如何藉助註解來精簡程式碼, 程式碼修煉的系列分享, 書接上篇, 本次繼續探討一下:還有哪些奇淫技巧,能助力 寫出精簡的程式碼?

1

編碼時:刪除多餘,才會更精簡。 

很多專案流轉到你手中時, 很多功能模組已廢棄 ... ...

膽放大,心留細, 一定要敢於動手 去重構。少即是多,只有去除多餘的程式碼,方能讓程式碼更精簡更完美。

精簡程式碼時,能想到的事項如下

  • 多餘的 Maven 依賴刪除;

  • 餘的配置資訊刪除;

  • 廢棄的 Module、API 、包、類、方法 刪除;

  • 多餘的 常量、變數 刪除;

  • 多餘的 匯入、註解、註釋、日誌 刪除;

  • 多餘的 TODO 刪除;

舉個栗子:chestnut:

多餘的 TODO,搞的後人不知所措。

再舉個栗子:chestnut: :chestnut:

由於功能下線,導致配置檔案中依然維護多餘的配置,每次上線還擔心線上網路不通,解除後顧之憂,勢必要去除 多餘的配置資訊。

再舉個栗子:chestnut: :chestnut: :chestnut:

如截圖示意,深入分析一下:

  • 標註 3:介面中的方法預設都是 public 修飾,可以去除;

  • 標註 2、4:子類都沒有實現定義的方法,可以去除;

  • 標註 1:子類沒有實現該介面,則該介面可以去除。

當然,寫出精簡的程式碼,仁者見仁智者見智,主要與團隊的開發規範有一定關係。

在專案研發中,還有哪些可以簡化程式碼的地方呢?

  • 利用反射進行物件賦值,可以簡化大批量的賦值程式碼(計劃:單獨開篇去討論);

  • 利用設計模式,例如工廠模式、模板方法模式,可以消除大量的重複程式碼,甚至 if else 語句;

  • 利用屬性拷貝工具,例如 BeanUtils,可以消除大量賦值程式碼(以往已經提及過);

  • 利用封裝好的工具類,例如 StringUtils、CollectionUtils等可以簡化大量的判斷語句;

  • 利用增強的 for 迴圈遍歷集合和陣列,會簡化程式碼;

  • 善於使用 return 關鍵字提前終止流程,會簡化程式結構。

其實,還有很多,不一一列舉,下面簡單看幾張圖,看看這些壞習慣,你是否犯過?

2

 編碼時:壞習慣,讓程式碼顯得冗長。   

舉個栗子:chestnut:

正解:採用 for-each 進行迴圈遍歷集合,程式碼會相對簡化一點。

以往分享過的栗子:chestnut:

解: else 略顯多餘,可以去除。

心裡話: 提前終止語句,快速失敗,會讓程式碼簡化不少,效率提 升不少。

以往分享過的栗子:chestnut:

正解: 在 return 前的判斷,貌似略顯多餘,可以修改為。

心裡話: 在編碼時,利用好 return 關鍵字,可以提前讓函式返回,避免定義很多中間變數。    

拿個專案中的栗子:chestnut:

正解:利用 return 關鍵字,可以適當調整如下。

心裡話: 在編碼時,提前終止程式,會減少圈的複雜度,結構更清晰。

3

寄語寫最後

老子曰: 有道無術,術尚可求也。 有術無道,止於術。

莊子曰: 以道馭術,術必成。 離道之術,術必衰。

古人曰: 上人用道,中人用術,下人用力。

小猿曰:管它什麼道與術,能助力搬磚採石就足矣,因為 我等採石之人心懷大教堂之願景

好了,程式碼修煉的系列分享,本次就談到這裡, 一起聊技術、談業務、噴架構,少走彎路,不踩大坑。 會持續輸出原創精彩分享,敬請期待!

堅持是一種信仰,在看是一種態度!