文章目錄
-
- 一、簡介
- 二、下載下傳位址
一、簡介
《Java 開發手冊》是阿裡巴巴集團技術團隊的集體智慧結晶和經驗總結,經曆了多次大規模一線實戰的檢驗及不斷完善,公開到業界後,衆多社群開發者踴躍參與,共同打磨完善,系統化地整理成冊。現代軟體行業的高速發展對開發者的綜合素質要求越來越高,因為不僅是程式設計知識點,其它次元的知識點也會影響到軟體的最終傳遞品質。
我複制出來的一些常用的标準,雖然比較基礎,但是在日常生活中都能用的到的,最基礎也最重要的;
-
【強制】代碼中的命名均不能以下劃線或美元符号開始,也不能以下劃線或美元符号結束。
反例:_name / name / n a m e / n a m e / n a m e name / name_ / name name/name/name / name
-
【強制】代碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。
說明: 正确的英文拼寫和文法可以讓閱讀者易于了解,避免歧義。注意,純拼音命名方式更要避免采用。
正例: renminbi / alibaba / taobao / youku / hangzhou 等國際通用的名稱,可視同英文。
反例: DaZhePromotion [打折] / getPingfenByName() [評分] / int 某變量 = 3
-
【強制】類名使用 UpperCamelCase 風格,但以下情形例外:DO/BO /DTO /VO/AO/PO/UID等。
正例: JavaServerlessPlatform / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例: javaserverlessplatform / UserDo / XMLService / TCPUDPDeal / TAPromotion
-
【強制】方法名、參數名、成員變量、局部變量都統一使用lowerCamelCase 風格,必須遵從駝峰形式。
正例: localValue / getHttpMessage() / inputUserId
-
【強制】常量命名全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長。
正例: MAX_STOCK_COUNT / CACHE_EXPIRED_TIME
反例: MAX_COUNT / EXPIRED_TIME
- 【強制】抽象類命名使用 Abstract 或 Base 開頭;異常類命名使用Exception 結尾;測試類命名以它要測試的類的名稱開始,以 Test 結尾。
-
【強制】類型與中括号緊挨相連來表示數組。
正例: 定義整形數組 int[] arrayDemo;
反例: 在 main 參數中,使用 String args[]來定義。
-
【強制】POJO 類中布爾類型變量都不要加 is 字首,否則部分架構解析會引起序列化錯誤。
說明: 在本文 MySQL 規約中的建表約定第一條,表達是與否的值采用 is_xxx 的命名方式,是以,需要在
<resultMap>
設定從 is_xxx 到 xxx 的映射關系。
反例: 定義為基本資料類型 Boolean isDeleted 的屬性,它的方法也是 isDeleted(),RPC 架構在反向解
析的時候,“誤以為”對應的屬性名稱是 deleted,導緻屬性擷取不到,進而抛出異常。
-
【強制】包名統一使用小寫,點分隔符之間有且僅有一個自然語義的英語單詞。包名統一使用單數形式,但是類名如果有複數含義,類名可以使用複數形式。
正例: 應用工具類包名為 com.alibaba.ai.util、類名為 MessageUtils(此規則參考 spring 的架構結構)
- 【強制】避免在子父類的成員變量之間、或者不同代碼塊的局部變量之間采用完全相同的命名,使可讀性降低。
說明: 子類、父類成員變量名相同,即使是 public 類型的變量也是能夠通過編譯,而局部變量在同一方法内的不同代碼塊中同名也是合法的,但是要避免使用。對于非 setter/getter 的參數名稱也要避免與成員變量名稱相同。
反例:
public class ConfusingName {
public int age;
// 非 setter/getter 的參數名稱,不允許與本類成員變量同名
public void getData(String alibaba) {
if(condition) {
final int money = 531;
// ...
}
for (int i = 0; i < 10; i++) {
// 在同一方法體中,不允許與其它代碼塊中的 money 命名相同
final int money = 615;
// ...
}
}
}
class Son extends ConfusingName {
// 不允許與父類的成員變量名稱相同
public int age;
}
- 【強制】杜絕完全不規範的縮寫,避免望文不知義。
反例: AbstractClass“縮寫”命名成 AbsClass;condition“縮寫”命名成 condi,此類随意縮寫嚴重降低了代碼的可閱讀性;
二、下載下傳位址
CSDN位址:
CSDN位址
百度網盤位址:
連結:https://pan.baidu.com/s/1vnu5wymPBJSm2b3YoDH7Rw
提取碼:wdi1