阿里巴巴Java开发手册——速读记录
本隨筆基于阿里巴巴Java開發手冊V1.2,陸陸續續記錄一些現階段能理解的,有啟發的內容,并將持續更新
最佳實踐——插件使用已經發布為隨筆!http://www.cnblogs.com/jiangbei/p/7668654.html
一、編程規范
1.命名規范
(1)代碼命名嚴禁下劃線(_)或美元符號($)開頭或結束
(2)命名嚴禁拼音與英文混用的方式
(3)類名采用 UpperCamelCase 命名方式,其他(變量,方法,參數等)采用 lowerCamelCase 方式
(4)常量全部使用大寫,使用下劃線(_)連接
(5)數組命名方式嚴禁使用 String args[] 的形式,請務必使用String[] args 的形式([]是數組的一部分)
(6)POJO中的boolean類型變量都不要加 is(反例:isRich)以免引起解析異常。
(7)包名統一小寫,使用小數點(.)進行分隔
(8)類名使用合適的后綴可以大大提高可讀性,例如測試類 Test 結尾,異常類 Exception 結尾
? 2.常量定義
(1)嚴禁出現任何魔法值
(2)long類型的變量,請使用大寫L作為標識(long time = 2L)
(3)變量盡量分類維護,盡量不要全定義在一個類中進行維護
3.代碼格式
(1)大括號換行(竟然還有左大括號換行的?/笑哭),不再文字贅述,千言萬語不如一張圖
方法參數后的括號與大括號之間建議添加一個空格
?(2)縮進采用4個空格,嚴禁使用Tab縮進
縮進采用 4 個空格,禁止使用 tab 字符。 說明:如果使用 tab 縮進,必須設置 1 個 tab 為 4 個空格。IDEA 設置 tab 為 4 個空格時, 請勿勾選 Use tab character;而在 eclipse 中,必須勾選 insert spaces for tabs。
??(3)任何二目、三目運算符的左右兩邊都需要加一個空格。
(4)if/for/while/switch/do 等保留字與括號之間都必須加空格。
(5)換行規范:
1) 第二行相對第一行縮進 4 個空格,從第三行開始,不再繼續縮進,參考示例。
2) 運算符與下文一起換行。
3) 方法調用的點符號與下文一起換行。
4) 在多個參數超長,在逗號后換行。
(6)方法參數在定義和傳入時,多個參數逗號后邊必須加空格。
4.OOP規范
(1)靜態方法與靜態常量請使用 類名. 進行調用!
(2)所有的覆寫方法,必須加@Override 注解。
(3)嚴禁使用過時的類或方法
(4)Object 的 equals 方法容易拋空指針異常,應使用常量或確定有值的對象來調用 equals。("abc".equals(str))
(5)所有的 POJO 類屬性必須使用包裝數據類型;所有的局部變量使用基本數據類型。
(6)構造方法里面禁止加入任何業務邏輯,如果有初始化邏輯,請放在 init 方法中。
(7)POJO 類必須寫 toString 方法。使用 IDE 的中工具:source> generate toString 時,如果繼承了另一個 POJO 類,注意在前面加一下 super.toString。
(8)類內方法定義順序依次是:公有方法或保護方法 > 私有方法 > getter/setter 方法。
(9)循環體內,字符串的連接方式,使用 StringBuilder 的 append 方法進行擴展。
5.集合處理
(1)只要重寫 equals,就必須重寫 hashCode。(參見java基礎隨筆)
(2)HashMap是允許null key和 null value的,并且它是線程不安全的
6.并發處理
待更新
7.控制語句
(1)每個switch都必須包含一個 default 語句并且 放在最后,即使它什么代碼也沒有。
(2)if/else/for/while/do 語句中必須使用大括號。即使只有一行代碼
(3)不要在條件判斷中執行其它復雜的語句,將復 雜邏輯判斷的結果賦值給一個有意義的布爾變量名,以提高可讀性。
8.注釋規約
(1)類、類屬性、類方法的注釋必須使用 Javadoc 規范,使用/**內容*/格式(可以自定義注釋模板,參見IDE配置隨筆)
(2)所有的類都必須添加創建者和創建日期。
(3)方法內部單行注釋,在被注釋語句上方另起一行(并且//后空一格),使用//注釋。方法內部多行注釋 使用/* */注釋,注意與代碼對齊。
(4)好的命名、代碼結構是自解釋的,注釋力求精簡準確、表達到位。避免出現注釋的 一個極端:過多過濫的注釋,代碼的邏輯一旦修改,修改注釋是相當大的負擔。
轉載于:https://www.cnblogs.com/jiangbei/p/7364723.html
總結
以上是生活随笔為你收集整理的阿里巴巴Java开发手册——速读记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Coursera公开课-Machine_
- 下一篇: Java并发——线程中断学习