阿里巴巴java開發(fā)者手冊(cè)整理(一)

  • 編程規(guī)約
    1. 命名風(fēng)格:駝峰命名
    2. POJO類中布爾類型的變量,都不要加is,否則部分框架解析會(huì)引起序列化錯(cuò)誤;
      1. 例如: 定義基本類型為Boolean isDeleted ;
    3. 包名一律小寫;統(tǒng)一使用單數(shù)的方式;類名一律大寫,可以含有復(fù)數(shù)的表示方式;
    4. 盡量使用英文自定義編程元素,表達(dá)清楚model,service,dao層;如果模塊,接口,類,方法使用了設(shè)計(jì)模式,在命名的時(shí)候要體現(xiàn)出來
      1. 從遠(yuǎn)程拉取代碼的類:PullCodeFromRemoteRepository
      2. OrderFactory;LoginProxy;
    5. 接口定義的時(shí)候,盡量不要加上修飾符;并加上Javadoc主是,盡量不要在接口中定義變量;
      1. 接口方法 :Void f()
      2. 接口基礎(chǔ)敞亮:String Company = “wenwei”
      3. JDK 8種允許又默認(rèn)的實(shí)現(xiàn),那么這個(gè)default方法,這個(gè)default ,是所有實(shí)現(xiàn)該接口最有價(jià)值的實(shí)現(xiàn);
    6. 接口與類的命名規(guī)則:
      1. 接口:保證接口實(shí)現(xiàn)的類命名與接口命名一致
      2. 枚舉類型加上Enum,枚舉類型是特殊的常量類型,構(gòu)造方法默認(rèn)強(qiáng)制私有,成員名稱:SUCCESS
      3. service/DAO層方法命名
        1. get:獲取某個(gè)對(duì)象的方法的前綴
        2. list: 獲取到對(duì)象list的方法的前綴
        3. update/modify:修改方法的前綴
        4. Count 統(tǒng)計(jì)對(duì)象的值的前綴
        5. insert/save;插入一個(gè)對(duì)象方法的前綴
  • 常量的定義
    1. 不允許有特殊字符出現(xiàn)在常量中
    2. Long或者long初始化的時(shí)候,需要增加L;不能小寫l;
    3. 常量類需要按照功能放在不同的常量類中;
    4. 如果變量類在一個(gè)范圍內(nèi)變化,且?guī)в忻Q之外的衍生意義,需要增加枚舉類型
    5. PushJobToJiraFailed("任務(wù)單推送不成功","任務(wù)單ID = {0}");

private String subject;
private String msg;

public String getSubject() {
return subject;
}

public String getMsg() {
return msg;
}

EmailSubAndMsgEnum(String subject, String msg) {
this.subject = subject;
this.msg = msg;
}

  • 代碼格式
    1. 采用4個(gè)空格縮進(jìn),禁止使用tab字符;
    2. 任何兩目和三目運(yùn)算符,左右兩邊都需要加一個(gè)空格
    3. // 和注釋內(nèi)容之間,有且僅有一個(gè)空格;
    4. 單行代碼的字符限制為120,超出部分需要換行;換行的策略
      1. 第二行比第二行縮進(jìn)4個(gè)空格,第三行不在縮進(jìn)
      2. 運(yùn)算符(方法調(diào)用點(diǎn)符號(hào).)和下文一起縮進(jìn);
      3. 多個(gè)參數(shù)之間的逗號(hào);逗號(hào)不能與下文一下縮進(jìn);
      4. 括號(hào)前不換行;
    5. IDE的text file encoding 設(shè)置為UTF-8;IDE中文件的換行符都為unix的格式(LF)(CR)
  • OOP規(guī)約
    1. 避免類的對(duì)象訪問類中的靜態(tài)常量或者靜態(tài)方法;
    2. object的equal方法容易拋空指針異常,應(yīng)使用常量來調(diào)用equal;
      1. “test”.equal(object) 采用
      2. 不采用object.equal(“test”)
    3. 關(guān)于基本類型與包裝類型的使用標(biāo)準(zhǔn)如下:
      1. 強(qiáng)制所有的POJO的基本類型都為包裝的基本類型
      2. 局部變量用基本類型
      3. RPC方法的返回值和參數(shù)必須使用包裝數(shù)據(jù)類型
        1. 數(shù)據(jù)庫查詢?yōu)閚ull,因?yàn)樾枰詣?dòng)拆箱,用基本類型可能有NPE的風(fēng)險(xiǎn)
        2. 在遠(yuǎn)程調(diào)用的RPC,返回的值為null;返回
    4. POJO類中必須寫toString,便于排查問題;
    5. DO/DTO/VO等POJO對(duì)象,不要設(shè)定任何默認(rèn)的屬性址
    6. 構(gòu)造方法禁止加入任何業(yè)務(wù)邏輯,如果有初始化邏輯,請(qǐng)放在init中;
    7. 序列類屬性,請(qǐng)不要手動(dòng)修改serialVersionUID 字段,避免反序列失?。蝗绻葱蛄惺?,重新生成serialVersionUID;
    8. 使用索引訪問用String的split方法的得到的數(shù)組,需要對(duì)最后一個(gè)字符有無內(nèi)容做檢查,否則會(huì)拋異常
    9. 類內(nèi)方法定義順序依次為;公有(保護(hù))方法>私有方法>getter/setter
    10. Setter/getter不需要增加任何業(yè)務(wù)邏輯,
    11. 循環(huán)體內(nèi)使用StringBuffer而不要使用String,避免內(nèi)存資源的浪費(fèi);
    12. 類成員與方法訪問控制從嚴(yán);
      1. 如果不允許外部直接使用,則通過new來創(chuàng)建對(duì)象,那么構(gòu)造函數(shù)必須為private
      2. 工具類不允許有public或default構(gòu)造方法。
      3. 類非static成員變量并且與子類共享,必須 用protected
      4. Static,成員考慮用final
      5. 類成員方法內(nèi)部防范用private,繼承使用,用protected

參考地址:https://github.com/vipshop/vjtools/blob/master/docs/standard/chapter12.md

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容