阿里巴巴 Java 開發手冊1.4.0
阿里巴巴 Java 開發手冊1.4.0
1/38
Java 開發手冊
1.4.0 | 阿里巴巴集團技術團隊 | 2018.5.20 | 增加設計規約(詳盡版) |
一、 程式設計規約
(一)命名風格
1. 【強制】 程式碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束。
反例: _name / __name / $name / name_ / name$ / name__
2. 【強制】 程式碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。
說明: 正確的英文拼寫和語法可以讓閱讀者易於理解,避免歧義。注意,即使純拼音命名方式
也要避免採用。
正例: alibaba / taobao / youku / hangzhou 等國際通用的名稱, 可視同英文。
反例: DaZhePromotion [打折] / getPingfenByName() [評分] / int 某變數 = 3
3. 【強制】類名使用 UpperCamelCase 風格,但以下情形例外: DO / BO / DTO / VO / AO /
PO / UID 等。
正例: MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例: macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
4. 【強制】方法名、引數名、成員變數、區域性變數都統一使用 lowerCamelCase 風格,必須遵從
駝峰形式。
正例: localValue / getHttpMessage() / inputUserId
5. 【強制】常量命名全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長。
正例: MAX_STOCK_COUNT
反例: MAX_COUNT
6. 【強制】抽象類命名使用 Abstract 或 Base 開頭; 異常類命名使用 Exception 結尾; 測試類
命名以它要測試的類的名稱開始,以 Test 結尾。
7. 【強制】型別與中括號緊挨相連來表示陣列。
正例:
反例: 在 main 引數中,使用 String args[]來定義。
8. 【強制】POJO 類中布林型別的變數,都不要加 is 字首,否則部分框架解析會引起序列化錯誤。
反例: 定義為基本資料型別 Boolean isDeleted 的屬性,它的方法也是 isDeleted(), RPC
阿里巴巴 Java 開發手冊
2/38
框架在反向解析的時候, “誤以為” 對應的屬性名稱是 deleted,導致屬性獲取不到,進而拋
出異常。
9. 【強制】包名統一使用小寫,點分隔符之間有且僅有一個自然語義的英語單詞。包名統一使用
單數形式,但是類名如果有複數含義,類名可以使用複數形式。
正例: 應用工具類包名為 com.alibaba.ai.util、類名為 MessageUtils(此規則參考 spring
的框架結構)
10. 【強制】杜絕完全不規範的縮寫, 避免望文不知義。
反例: AbstractClass“縮寫” 命名成 AbsClass; condition“縮寫” 命名成 condi,此類隨
意縮寫嚴重降低了程式碼的可閱讀性。
11. 【推薦】為了達到程式碼自解釋的目標,任何自定義程式設計元素在命名時,使用盡量完整的單詞
組合來表達其意。
正例: 在 JDK 中, 表達原子更新的類名為: AtomicReferenceFieldUpdater。
反例: 變數 int a 的隨意命名方式。
12. 【推薦】如果模組、 介面、類、方法使用了設計模式,在命名時需體現出具體模式。
說明: 將設計模式體現在名字中,有利於閱讀者快速理解架構設計理念。
正例: public class OrderFactory;
public class LoginProxy;
public class ResourceObserver;
13. 【推薦】介面類中的方法和屬性不要加任何修飾符號(public 也不要加) ,保持程式碼的簡潔
性,並加上有效的 Javadoc 註釋。儘量不要在接口裡定義變數,如果一定要定義變數,肯定是
與介面方法相關,並且是整個應用的基礎常量。
正例: 介面方法簽名 void commit();
介面基礎常量 String COMPANY = "alibaba";
反例: 介面方法定義 public abstract void f();
說明: JDK8 中介面允許有預設實現,那麼這個 default 方法,是對所有實現類都有價值的默
認實現。
14. 介面和實現類的命名有兩套規則:
1) 【強制】對於 Service 和 DAO 類,基於 SOA 的理念,暴露出來的服務一定是介面,內部
的實現類用 Impl 的字尾與介面區別。
正例: CacheServiceImpl 實現 CacheService 介面。
2)【推薦】 如果是形容能力的介面名稱,取對應的形容詞為介面名(通常是–able 的形式)。
正例: AbstractTranslator 實現 Translatable 介面。
阿里巴巴 Java 開發手冊
3/38
15.【參考】列舉類名建議帶上 Enum 字尾,列舉成員名稱需要全大寫,單詞間用下劃線隔開。
說明: 列舉其實就是特殊的類, 域成員均為常量, 且構造方法被預設強制是私有。
正例: 列舉名字為 ProcessStatusEnum 的成員名稱: SUCCESS / UNKNOWN_REASON。
16.【參考】各層命名規約:
A) Service/DAO 層方法命名規約
1) 獲取單個物件的方法用 get 做字首。
2) 獲取多個物件的方法用 list 做字首,複數形式結尾如: listObjects。
3) 獲取統計值的方法用 count 做字首。
4) 插入的方法用 save/insert 做字首。
5) 刪除的方法用 remove/delete 做字首。
6) 修改的方法用 update 做字首。
B) 領域模型命名規約
1) 資料物件: xxxDO, xxx 即為資料表名。
2) 資料傳輸物件: xxxDTO, xxx 為業務領域相關的名稱。
3) 展示物件: xxxVO, xxx 一般為網頁名稱。
4) POJO 是 DO/DTO/BO/VO 的統稱,禁止命名成 xxxPOJO。
(二)常量定義
1. 【強制】不允許任何魔法值(即未經預先定義的常量) 直接出現在程式碼中。
反例: String key = "Id#taobao_" + tradeId;
cache.put(key, value);
2. 【強制】 在 long 或者 Long 賦值時, 數值後使用大寫的 L,不能是小寫的 l,小寫容易跟數字
1 混淆,造成誤解。
說明: Long a = 2l; 寫的是數字的 21,還是 Long 型的 2?
3. 【推薦】不要使用一個常量類維護所有常量, 要按常量功能進行歸類,分開維護。
說明: 大而全的常量類, 雜亂無章, 使用查詢功能才能定位到修改的常量,不利於理解和維護。
正例: 快取相關常量放在類 CacheConsts 下; 系統配置相關常量放在類 ConfigConsts 下。
4. 【推薦】常量的複用層次有五層:跨應用共享常量、應用內共享常量、子工程內共享常量、包
內共享常量、類內共享常量。
1) 跨應用共享常量:放置在二方庫中,通常是 client.jar 中的 constant 目錄下。
2) 應用內共享常量:放置在一方庫中, 通常是子模組中的 constant 目錄下。
反例: 易懂變數也要統一定義成應用內共享常量,兩位攻城師在兩個類中分別定義了表示
“是”的變數:
類 A 中: public static final String YES = "yes";
阿里巴巴 Java 開發手冊
4/38
類 B 中: public static final String YES = "y";
A.YES.equals(B.YES),預期是 true,但實際返回為 false,導致線上問題。
3) 子工程內部共享常量:即在當前子工程的 constant 目錄下。
4) 包內共享常量:即在當前包下單獨的 constant 目錄下。
5) 類內共享常量:直接在類內部 private static final 定義。
5. 【推薦】 如果變數值僅在一個固定範圍內變化用 enum 型別來定義。
說明: 如果存在名稱之外的延伸屬性應使用 enum 型別,下面正例中的數字就是延伸資訊,表
示一年中的第幾個季節。
正例:
public enum SeasonEnum {
SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);
private int seq;
SeasonEnum(int seq){
this.seq = seq;
}
}
(三)程式碼格式
1. 【強制】大括號的使用約定。如果是大括號內為空,則簡潔地寫成{}即可,不需要換行; 如果
是非空程式碼塊則:
1) 左大括號前不換行。
2) 左大括號後換行。
3) 右大括號前換行。
4) 右大括號後還有 else 等程式碼則不換行; 表示終止的右大括號後必須換行。
2. 【強制】左小括號和字元之間不出現空格; 同樣,右小括號和字元之間也不出現空格;而左大
括號前需要空格。詳見第 5 條下方正例提示。
反例: if (空格 a == b 空格)
3. 【強制】 if/for/while/switch/do 等保留字與括號之間都必須加空格。
4. 【強制】任何二目、 三目運算子的左右兩邊都需要加一個空格。
說明: 運算子包括賦值運算子=、邏輯運算子&&、加減乘除符號等。
5. 【強制】 採用 4 個空格縮排,禁止使用 tab 字元。
說明: 如果使用 tab 縮排,必須設定 1 個 tab 為 4 個空格。 IDEA 設定 tab 為 4 個空格時,
請勿勾選 Use tab character;而在 eclipse 中,必須勾選 insert spaces for tabs。
阿里巴巴 Java 開發手冊
5/38
正例: (涉及 1-5 點)
public static void main(String[] args) {
// 縮排 4 個空格
String say = "hello";
// 運算子的左右必須有一個空格
int flag = 0;
// 關鍵詞 if 與括號之間必須有一個空格,括號內的 f 與左括號, 0 與右括號不需要空格
if (flag == 0) {
System.out.println(say);
}
// 左大括號前加空格且不換行;左大括號後換行
if (flag == 1) {
System.out.println("world");
// 右大括號前換行,右大括號後有 else,不用換行
} else {
System.out.println("ok");
// 在右大括號後直接結束,則必須換行
}
}
6. 【強制】註釋的雙斜線與註釋內容之間有且僅有一個空格。
正例:
// 這是示例註釋,請注意在雙斜線之後有一個空格
String ygb = new String();
7. 【強制】單行字元數限制不超過 120 個,超出需要換行,換行時遵循如下原則:
1) 第二行相對第一行縮排 4 個空格,從第三行開始,不再繼續縮排,參考示例。
2) 運算子與下文一起換行。
3) 方法呼叫的點符號與下文一起換行。
4) 方法呼叫中的多個引數需要換行時, 在逗號後進行。
5) 在括號前不要換行,見反例。
正例:
StringBuffer sb = new StringBuffer();
// 超過 120 個字元的情況下,換行縮排 4 個空格, 點號和方法名稱一起換行
sb.append("zi").append("xin")...
.append("huang")...
.append("huang")...
.append("huang");
反例:
StringBuffer sb = new StringBuffer();
// 超過 120 個字元的情況下,不要在括號前換行
sb.append("zi").append("xin")...append
("huang");
// 引數很多的方法呼叫可能超過 120 個字元, 不要在逗號前換行
method(args1, args2, args3, ...
, argsX);
阿里巴巴 Java 開發手冊
6/38
8. 【強制】方法引數在定義和傳入時,多個引數逗號後邊必須加空格。
正例: 下例中實參的 args1, 後邊必須要有一個空格。
method(args1, args2, args3);
9. 【強制】 IDE 的 text file encoding 設定為 UTF-8; IDE 中檔案的換行符使用 Unix 格式,
不要使用 Windows 格式。
10. 【推薦】單個方法的總行數不超過 80 行。
說明: 包括方法簽名、結束右大括號、方法內程式碼、註釋、空行、回車及任何不可見字元的總
行數不超過 80 行。
正例: 程式碼邏輯分清紅花和綠葉, 個性和共性,綠葉邏輯單獨出來成為額外方法,使主幹程式碼
更加清晰; 共性邏輯抽取成為共性方法,便於複用和維護。
11. 【推薦】沒有必要增加若干空格來使某一行的字元與上一行對應位置的字元對齊。
正例:
int one = 1;
long two = 2L;
float three = 3F;
StringBuffer sb = new StringBuffer();
說明: 增加 sb 這個變數,如果需要對齊,則給 a、 b、 c 都要增加幾個空格,在變數比較多的
情況下,是非常累贅的事情。
12.【推薦】 不同邏輯、不同語義、不同業務的程式碼之間插入一個空行分隔開來以提升可讀性。
說明: 任何情形, 沒有必要插入多個空行進行隔開。
(四)OOP 規約
1. 【強制】避免通過一個類的物件引用訪問此類的靜態變數或靜態方法,無謂增加編譯器解析成
本,直接用類名來訪問即可。
2. 【強制】所有的覆寫方法,必須加@Override 註解。
說明: getObject()與 get0bject()的問題。一個是字母的 O,一個是數字的 0,加@Override
可以準確判斷是否覆蓋成功。另外,如果在抽象類中對方法簽名進行修改,其實現類會馬上編
譯報錯。
3. 【強制】相同引數型別,相同業務含義,才可以使用 Java 的可變引數,避免使用 Object。
說明: 可變引數必須放置在引數列表的最後。 (提倡同學們儘量不用可變引數程式設計)
正例: public List<User> listUsers(String type, Long... ids) {...}
4. 【強制】外部正在呼叫或者二方庫依賴的介面,不允許修改方法簽名,避免對介面呼叫方產生
影響。介面過時必須加@Deprecated 註解,並清晰地說明採用的新介面或者新服務是什麼。
5. 【強制】不能使用過時的類或方法。
說明: java.net.URLDecoder 中的方法 decode(String encodeStr) 這個方法已經過時,應
阿里巴巴 Java 開發手冊
7/38
該使用雙引數 decode(String source, String encode)。介面提供方既然明確是過時介面,
那麼有義務同時提供新的介面; 作為呼叫方來說,有義務去考證過時方法的新實現是什麼。
6. 【強制】 Object 的 equals 方法容易拋空指標異常,應使用常量或確定有值的物件來呼叫
equals。
正例: "test".equals(object);
反例: object.equals("test");
說明: 推薦使用 java.util.Objects#equals(JDK7 引入的工具類)
7. 【強制】所有的相同型別的包裝類物件之間值的比較,全部使用 equals 方法比較。
說明: 對於 Integer var = ? 在-128 至 127 範圍內的賦值, Integer 物件是在
IntegerCache.cache 產生,會複用已有物件,這個區間內的 Integer 值可以直接使用==進行
判斷,但是這個區間之外的所有資料,都會在堆上產生,並不會複用已有物件,這是一個大坑,
推薦使用 equals 方法進行判斷。
8. 關於基本資料型別與包裝資料型別的使用標準如下:
1) 【強制】 所有的 POJO 類屬性必須使用包裝資料型別。
2) 【強制】 RPC 方法的返回值和引數必須使用包裝資料型別。
3) 【推薦】 所有的區域性變數使用基本資料型別。
說明: POJO 類屬性沒有初值是提醒使用者在需要使用時,必須自己顯式地進行賦值,任何
NPE 問題,或者入庫檢查,都由使用者來保證。
正例: 資料庫的查詢結果可能是 null,因為自動拆箱,用基本資料型別接收有 NPE 風險。
反例: 比如顯示成交總額漲跌情況,即正負 x%, x 為基本資料型別,呼叫的 RPC 服務,呼叫
不成功時,返回的是預設值,頁面顯示為 0%,這是不合理的,應該顯示成中劃線。所以包裝
資料型別的 null 值,能夠表示額外的資訊,如:遠端呼叫失敗,異常退出。
9. 【強制】定義 DO/DTO/VO 等 POJO 類時,不要設定任何屬性預設值。
反例: POJO 類的 gmtCreate 預設值為 new Date(), 但是這個屬性在資料提取時並沒有置入具
體值,在更新其它欄位時又附帶更新了此欄位,導致建立時間被修改成當前時間。
10. 【強制】序列化類新增屬性時,請不要修改 serialVersionUID 欄位,避免反序列失敗; 如
果完全不相容升級,避免反序列化混亂,那麼請修改 serialVersionUID 值。
說明: 注意 serialVersionUID 不一致會丟擲序列化執行時異常。
11. 【強制】構造方法裡面禁止加入任何業務邏輯,如果有初始化邏輯,請放在 init 方法中。
12. 【強制】 POJO 類必須寫 toString 方法。使用 IDE 中的工具: source> generate toString
時,如果繼承了另一個 POJO 類,注意在前面加一下 super.toString。
說明: 在方法執行丟擲異常時,可以直接呼叫 POJO 的 toString()方法列印其屬性值,便於排
查問題。
阿里巴巴 Java 開發手冊
8/38
13.【強制】禁止在 POJO 類中,同時存在對應屬性 xxx 的 isXxx()和 getXxx()方法。
說明: 框架在呼叫屬性 xxx 的提取方法時,並不能確定哪個方法一定是被優先呼叫到。
14.【推薦】使用索引訪問用 String 的 split 方法得到的陣列時,需做最後一個分隔符後有無
內容的檢查,否則會有拋 IndexOutOfBoundsException 的風險。
說明:
String str = "a,b,c,,";
String[] ary = str.split(",");
// 預期大於 3,結果是 3
System.out.println(ary.length);
15.【推薦】當一個類有多個構造方法,或者多個同名方法,這些方法應該按順序放置在一起,
便於閱讀,此條規則優先於第 16 條規則。
16.【推薦】 類內方法定義的順序依次是:公有方法或保護方法 > 私有方法 > getter/setter
方法。
說明: 公有方法是類的呼叫者和維護者最關心的方法,首屏展示最好; 保護方法雖然只是子類
關心,也可能是“模板設計模式”下的核心方法; 而私有方法外部一般不需要特別關心,是一個
黑盒實現; 因為承載的資訊價值較低,所有 Service 和 DAO 的 getter/setter 方法放在類體
最後。
17. 【推薦】 setter 方法中,引數名稱與類成員變數名稱一致, this.成員名 = 引數名。在
getter/setter 方法中, 不要增加業務邏輯,增加排查問題的難度。
反例:
public Integer getData() {
if (condition) {
return this.data + 100;
} else {
return this.data - 100;
}
}
18. 【推薦】迴圈體內,字串的連線方式,使用 StringBuilder 的 append 方法進行擴充套件。
說明: 下例中, 反編譯出的位元組碼檔案顯示每次迴圈都會 new 出一個 StringBuilder 物件,
然後進行 append 操作,最後通過 toString 方法返回 String 物件,造成記憶體資源浪費。
反例:
String str = "start";
for (int i = 0; i < 100; i++) {
str = str + "hello";
}
19. 【推薦】 final 可以宣告類、成員變數、方法、以及本地變數,下列情況使用 final 關鍵字:
1) 不允許被繼承的類,如: String 類。
2) 不允許修改引用的域物件。
3) 不允許被重寫的方法,如: POJO 類的 setter 方法。
阿里巴巴 Java 開發手冊
9/38
4) 不允許執行過程中重新賦值的區域性變數。
5) 避免上下文重複使用一個變數,使用 final 描述可以強制重新定義一個變數,方便更好
地進行重構。
20. 【推薦】慎用 Object 的 clone 方法來拷貝物件。
說明: 物件的 clone 方法預設是淺拷貝,若想實現深拷貝需要重寫 clone 方法實現域物件的
深度遍歷式拷貝。
21. 【推薦】類成員與方法訪問控制從嚴:
1) 如果不允許外部直接通過 new 來建立物件,那麼構造方法必須是 private。
2) 工具類不允許有 public 或 default 構造方法。
3) 類非 static 成員變數並且與子類共享,必須是 protected。
4) 類非 static 成員變數並且僅在本類使用,必須是 private。
5) 類 static 成員變數如果僅在本類使用,必須是 private。
6) 若是 static 成員變數, 考慮是否為 final。
7) 類成員方法只供類內部呼叫,必須是 private。
8) 類成員方法只對繼承類公開,那麼限制為 protected。
說明: 任何類、方法、引數、變數,嚴控訪問範圍。過於寬泛的訪問範圍,不利於模組解耦。
思考:如果是一個 private 的方法,想刪除就刪除,可是一個 public 的 service 成員方法或
成員變數,刪除一下,不得手心冒點汗嗎?變數像自己的小孩,儘量在自己的視線內,變數作
用域太大, 無限制的到處跑,那麼你會擔心的。
(五)集合處理
1. 【強制】 關於 hashCode 和 equals 的處理,遵循如下規則:
1) 只要重寫 equals,就必須重寫 hashCode。
2) 因為 Set 儲存的是不重複的物件,依據 hashCode 和 equals 進行判斷,所以 Set 儲存的
物件必須重寫這兩個方法。
3) 如果自定義物件作為 Map 的鍵,那麼必須重寫 hashCode 和 equals。
說明: String 重寫了 hashCode 和 equals 方法,所以我們可以非常愉快地使用 String 物件
作為 key 來使用。
2. 【強制】 ArrayList的subList結果不可強轉成ArrayList,否則會丟擲 ClassCastException
異常, 即 java.util.RandomAccessSubList cannot be cast to java.util.ArrayList。
說明: subList 返回的是 ArrayList 的內部類 SubList,並不是 ArrayList 而是 ArrayList
的一個檢視,對於 SubList 子列表的所有操作最終會反映到原列表上。
3. 【強制】在 subList 場景中, 高度注意對原集合元素的增加或刪除, 均會導致子列表的遍歷、
增加、刪除產生 ConcurrentModificationException 異常。
阿里巴巴 Java 開發手冊
10/38
4. 【強制】使用集合轉陣列的方法,必須使用集合的 toArray(T[] array),傳入的是型別完全
一樣的陣列,大小就是 list.
相關推薦
阿里巴巴 Java 開發手冊1.4.0
阿里巴巴 Java 開發手冊1.4.0 1/38 Java 開發手冊
《阿裏巴巴Java開發手冊1.4.0》閱讀總結與心得(一)
更新 java開發手冊 new 開發者 由於 阿裏巴巴 itl 一個bug 項目庫 前言 下面是阿裏對《阿裏巴巴 Java 開發手冊》(下稱《手冊》)的介紹: 凝聚了阿裏集團很多同學的知識智慧和經驗,這些經驗甚至是用血淋淋的故障換來的,希望前車之鑒,後車之師,能
阿里巴巴Java開發手冊v1.2.0網頁版
前言 《阿里巴巴Java開發手冊》是阿里巴巴集團技術團隊的集體經驗總結,經歷了多次大規模一線實戰的檢驗及不斷的完善,反饋給廣大開發者。現代軟體行業的高速發展對開發者的綜合素質要求越來越高,因為不僅是程式設計知識點,其它維度的知識點也會影響到軟體的
阿里巴巴Java開發手冊--程式碼抒寫規範和注意
Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念 PO(persistant object) 持久物件 在 o/r 對映的時候出現的概念,如果沒有 o/r 對映,沒有這個概念存在了。通常對應資料模型 ( 資料庫 ), 本身還有部分業務邏輯的
《阿里巴巴 Java開發手冊》讀後感
前言 只有光頭才能變強 前一陣子一直在學Redis,結果在黃金段位被虐了,暫時升不了段位了,每天都拿不到首勝(好煩)。 趁著學校校運會,合理地給自己放了一個小長假,然後就回家了。回到家才發現當時618買了一堆書,這堆書還有沒撕包裝的呢....於是我翻出了最薄的一本《阿里巴巴 Java開發手冊》
2018全面總結阿里巴巴Java開發手冊
其實早在多年前,Google就已經把公司內部採用的所有語言的編碼規範(其稱為 Style Guide )都開源在Github上。這份清單中包括了 C++ 、 Objective-C 、 Java 、 Python 、 R 、 Shell 、 HTML/CSS 、 JavaScript 、 A
JAVA 開發命名規範——阿里巴巴Java開發手冊
0)Service/DAO層方法命名規約 1)獲取單個物件的方法用get做字首。 2)獲取多個物件的方法用list做字首。 3)獲取統計值的方法用count做字首。 4)插入的方法用save(推薦)或insert做字首。 5)刪除的方法用remove(推薦)或delete做字
阿里巴巴-Java開發手冊-筆記小炒
雙11買了本Java開發手冊,通讀了一遍,學習了較多規範問題,這些規範自己慢慢經歷可能需要較長一段時間。 這裡記下筆記,以後隨時也有的學習。 序 一致性很重要,無邊無際爭論的時間成本與最後的收益是成反比的。 縮排使用四個空格,不使用tab if單語句必須加大括
針對《阿里巴巴Java開發手冊》研發的程式碼格式化工具 IDEA外掛與Eclipse外掛使用指南
關於規約外掛的背景介紹,可見上篇文章:提升團隊研發效能利器,《阿里巴巴Java開發手冊》外掛全球首發(附外掛下載地址) 一、阿里巴巴Java開發手冊IDEA外掛使用指南 通過Jetbrains官方倉庫安裝 1. 開啟 Settings
阿里巴巴 Java 開發手冊評述
注:本文基於阿里巴巴技術手冊的1.0.2版本編寫 2016年底,阿里巴巴公開了其在內部使用的Java程式設計規範。隨後進行了幾次版本修訂,筆者當時看到的版本為v1.0.2版。下載地址可以在其官方社群——雲棲社群找到。 筆者作為一名有數年工作經驗的Java程式設計師,
《阿里巴巴Java開發手冊》外掛安裝及使用
Idea安裝 IDEA版的外掛已釋出到IDEA官方倉庫中(最低支援版本14.1.7,JDK1.7+),只需開啟 Settings >> Plugins >> Browse repositories 輸入 Alibaba 搜尋一下便可以看
《阿里巴巴Java開發手冊》IDEA外掛與Eclipse外掛使用指南
一、阿里巴巴Java開發手冊IDEA外掛使用指南 通過Jetbrains官方倉庫安裝 1. 開啟 Settings >> Plugins >> Browse repositories... 2. 在搜尋框輸入alibaba即可看到Alibaba Java Code
阿里巴巴Java開發手冊&外掛安裝
程式碼規約外掛 Eclipse外掛安裝 Eclipse版外掛支援4.2(Juno,JDK1.8+)及以上版本,我們提供自主的Update Site,通過 Help >> Install New Software 然後輸入https://p3c.aliba
阿里巴巴Java開發手冊閱讀筆記
備註:筆記參考《阿里巴巴Java開發手冊終極版v1.3.0》 下載連結: https://pan.baidu.com/s/1k4ujejAkRaUjhUP1IK_Cvw 提取碼: hew3 一、程式設計規範 1、常量命名全部用大寫,單詞間用下劃線隔開 正例:
阿里巴巴Java開發手冊部分加註——異常日誌
二、異常日誌 (一) 異常處理 1.【強制】Java 類庫中定義的可以通過預檢查方式規避的 RuntimeException 異常不應該通過 catch 的方式來處理,比如:NullPointerException,IndexOutOfBoundsException 等等。 說
阿里巴巴Java開發手冊MyEclipse外掛使用指南
1.外掛安裝 環境:JDK1.8,本人使用的myEclipse2017。有同學遇到過這樣的情況,安裝外掛重啟後,發現沒有對應的選單項,從日誌上也看不到相關的異常資訊,最後把JDK從1.6升級到1.8解
阿里巴巴Java開發手冊重點解讀(一)
程式設計規約-OOP規約-8 【強制】關於基本資料型別與包裝資料型別的使用標準如下: 1) 所有的 POJO 類屬性必須使用包裝資料型別。 2) RPC 方法的返回值和引數必須使用包裝資料型別。 3) 所有的區域性變數【推薦】 使用基本資料型別。
阿里巴巴Java開發手冊個人整理精簡版(一)
個人程式設計時日雖說不短,但整體專案經驗感覺上還是比較欠缺,而且個人的程式設計風格並未形成,為了使自己的程式設計更加讓人賞心悅目(而不是傷心)最近看了阿里的Java開發程式設計的規約希望對自己的程式設計風格有些正面的影響,下面是我的一些筆記和總結: 一、程式設
《阿里巴巴Java開發手冊(正式版)》--MySQL規約
(一)建表規約 1.【強制】表達是與否概念的欄位,必須使用 is_xxx的方式命名,資料型別是 unsigned tinyint( 1表示是,0表示否),此規則同樣適用於 odps建表。 說明:任何欄位如果為非負數,必須是 unsigned。 個人備註: