作為一名java開發工程師,對于這個問題我算是比較有感觸的,所以想說說我對java開發的一些看法,純屬個人意見,不喜輕噴!
什么樣的代碼算是高質量代碼,或者說是高質量代碼的特征?在我看來,主要就是在于可讀性、易擴展兩方面。
首先,我覺得最重要是要可讀性高。為什么這么說呢?相信做過開發的朋友都知道,互聯網公司的人員流動率還是比較高的,可能出現的情況是領導突然跟你說,你去交接一下某某某同事的工作,而交接的時候一般情況主要是業務流程、功能模塊來交接,大概率不會一行一行的代碼去讀。如果項目正常運轉,不出問題、也沒有需求變更(大概率需求會變更),那就是你好我好大家好,如果出了問題或者需求變更,還是之前同事的那些模塊,那就必須得去啃代碼了。這個時候代碼的易讀性就顯得非常重要了。你可以試想一下,通篇沒有一句注釋、一個方法幾百行、if/else滿天飛、方法之間參數傳遞全是map、sql語句各種嵌套子查詢、關聯查詢7-8個表,當你看到這樣的代碼,估計心里頓時萬馬奔騰,怒火蹭蹭蹭的往頭上涌去。所以我覺得可讀性是第一要素。
其次,擴展性要好。這個也很好理解,現在是信息時代,流量為王,為了提高市場占有率,普遍需求變更頻繁,2周一次發布都是正常頻率。在這種頻繁需求變更的情況下,如果代碼的擴展性不高,每一次需求都需要大量改動代碼,即耗費時間還容易出錯,比如漏改某處地方而引起其他功能異常。所以開發過程中要注意代碼擴展性,當然也不要去過分設計,讓代碼晦澀難懂。
高質量代碼在開發中的意義?《計算機程序的構造和解釋》一書提到代碼是寫給人看的,不是寫給機器看的,只是順便計算機可以執行而已。如果代碼是寫給機器看的,那完全可以使用匯編語言或者機器語言(二進制),直接讓機器執行。所以代碼一定要讓人容易理解。高質量代碼的好處:
好的代碼讀起來令人賞心悅目,比如java里的spring、mybatis等框架,讀源碼時常常不自覺發出驚嘆,代碼原來還可以這么寫!
質量高意味著維護成本低,運行穩定
質量高意味著擴展性強,方便業務開發
如何去寫高質量代碼?對于做java的來說,我建議去看一下《阿里巴巴Java開發手冊》。
手冊以 Java 開發者為中心視角,劃分為編程規約、異常日志、單元測試、安全規約、MySQL 數據庫、工程結構、設計規約七個維度,再根據內容特征,細分成若干二級子目錄。根據約束力強弱及故障敏感性,規約依次分為強制、推薦、參考三大類。對于規約條目的延伸信息中,“說明”對規約做了適當擴展和解釋;“正例”提倡什么樣的編碼和實現方式;“反例”說明需要提防的雷區,以及真實的錯誤案例。 摘自《阿里巴巴 Java 開發手冊》最后推薦一下阿里巴巴代碼規范掃描插件,以IDEA為例,安裝如下
使用如下: