Java代碼規範
1.命名、注釋和提示:
(1).命名方法時,首字母不能為大寫,哪怕是單詞的縮寫也不能為大寫。如HgSetToHgInfo,必須改成hgSetToHgInfo。
(2).命名要規範,易理解,與方法執行的目的或作用保持一致。例如,獲取數據列表,命名應為getHolidayGuardsByWatchId,而不是getWatchIdHolidayGuards。
(3).關於注釋,可利用方法和變數的命名來理解業務邏輯,或者用注釋來說明方法的用途和注意要點,兩者酌情而定。
(4).定義了未使用的對象或變數,編譯器會提示此多餘代碼,在AndroidStudio編譯器中,代碼提示中有黃色提示的,即多餘的變數,一定要進行處理。
2.網路請求:
(1).網路請求,不能直接return掉,return掉之後,請求會一直在哪兒,沒有返回,調用者無法做相應處理。
(2).在網路請求之前,不需要返回數據,listener可為空。
3.Log日誌:
(1).在調試程序時,統一使用LogUtil,便於發布版本時控制Log的開關,可針對個人需要在特定模塊Log中增加Tag。
(2).Log Level需要根據實際情況和規範來寫,不能到處寫error級別的Log。
4.判斷方法:
(1).判斷變數x是否為null時,統一為 x == null,不能寫成null == x;
(2).方法體內,有過長的判斷時,儘可能抽調出來,新建臨時變數來判斷,使代碼結構清晰,便於閱讀。
(3).網路請求返回object時,有些地方有判斷是否為空,有些地方未判斷是否為空,前後不一,需保持一致。
5.數據處理:
(1).方法命名了getData,但是在內部又進行了本地緩存數據的刪除等操作,需要考慮重命名,減少歧義,或是將本地數據刪除操作等封裝出來。
(2).執行資料庫刪除操作時未對成功或失敗的情況做處理,當因為不可知因素刪除失敗時,需要對失敗情況進行處理,如重執行,輸出日誌等。
(3).List返回值時,面對返回null和返回空集合的選擇,對於集合和數組作為返回值,使用長度為零的數組或者集合,而不是null,好處是可簡化代碼,增強程序健壯性,缺陷是會增加微不足道的系統開銷。
可簡單的概括為:任何在邏輯上表示查找(search或者get)的意思時,應該返回null;當空對象與其他返回對象有一樣的行為和意義時,使用空對象。
6.其他:
(1).Dao在構造函數初始化中new比較好,避免在每個方法體中使用時new臨時對象,增加代碼行數。但臨時對象在使用後可以被及時回收,兩種方案需針對具體情況處理。
(2).單例模式在多個線程密集調用getInstance時,存在創建多個實例的可能。可使用synchronized修飾getInstance方法,但使用此方法後必然會導致性能下降,可使用雙重檢查加鎖,首先進入
該方法時進行null == sInstance檢查,如果第一次檢查通過,即沒有實例創建,則進入synchronized控制的同步塊,並再次檢查實例是否創建,如果仍未創建,則創建該實例。
※Java核心知識點-JVM結構和工作方式
※JAVA封裝
※用這幾招大大的提高了 編程的效率!
※java基礎語法
※開發維護大型 Java 項目的建議
TAG:java學習吧 |
※Python 編碼規範(Google)
※Python最簡編碼規範
※使用Sonar做團隊代碼規範化審查
※關於Google發布的JS代碼規範,你需要了解什麼?
※Google Chrome和Mozilla Firefox將支持全新無密碼登錄規範
※前端JS代碼規範
※每日資訊Google Chrome和Mozilla Firefox將支持全新無密碼登錄規範……
※規範槓桿位置的bulldog握姿
※Google HTML/CSS 規範
※USB 4規範發布,基於Intel Thunderbolt 3技術
※git 操作規範
※Photoshop中網頁的設計規範
※Python編程環境搭建和規範
※分散式消息規範 OpenMessaging 1.0.0-preview 發布
※谷歌給開發人員發布準則:規範Play Store商店內容
※蘋果 CEO:Facebook 應該規範自己的行為
※USB Promoter Group正式公布USB 4 規範:40Gbps,兼容雷電3
※BEM思想(css命名規範)
※前端每周清單:Slack Webpack構建優化,CSS 命名規範與用戶追蹤
※詳解HTML與CSS代碼的規範