近日,從網上下載了阿里雲棲社區發佈的《阿里巴巴Java開發手冊(正式版)》v1.1.0版。從編程以來,一直苦於沒有相關的、全面的、靠譜的規範能夠參考,有了這手冊,往後編程也算是找到了依據。瞧,人家阿里都是按照這規則來操做的!面試
雲棲社區此舉對於普通Java開發者來講,算是功德無量,在必定程度上規範了Java開發者的編程習慣。爲後來者謀福利了。編程
這本手冊一共分爲五個部分,包括了編程規約、異常日誌、MySQL規約、工程規約、安全規約。基本上從編碼的各個方面都細細的理了一遍,感受徹底能夠當作是公司招人的面試題,用來考較對方的編碼習慣,甚至也能在必定程度上能推斷出對方的編碼水平,畢竟高的編碼水平,其編碼習慣確定不會差到哪去。安全
手冊的內容約束分爲三種級別,分別爲強制、推薦、參考。強制,即必須聽從的編碼規範;推薦,則表示最好聽從該規範,有利於提升代碼水平;參考,則表示須要瞭解便可。併發
花了一個上午,仔細地將這篇手冊閱讀了一番,結果只看了編程規約這部分,從中摘錄了一些規約,我以爲往後在編碼過程當中須要注意及提高的地方。框架
A) Service/DAO 層方法命名規約
1) 獲取單個對象的方法用 get 作前綴。
2) 獲取多個對象的方法用 list 作前綴。
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。
點評:由於公司人來人往的緣故,對方法的命名歷來都是本身按照本身的那套玩。就我我的習慣而言,只要是獲取對象所有都是get作前綴,阿里的這種作法的確能夠用來參考參考。工具
說明: 在方法執行拋出異常時,能夠直接調用 POJO 的 toString()方法打印其屬性值,便於排查問題。測試
說明: 擴展說一下 PECS(Producer Extends Consumer Super)原則: 1) 頻繁往外讀取內容的,適合用上界 Extends。 2) 常常往裏插入的,適合用下界 Super。阿里雲