《阿里Java開發手冊》 | 編程規約 - 其他
【強制】在使用正則表達式時,利用好其預編譯功能,可以有效加快正則匹配速度。
說明:不要在方法體內定義:Pattern pattern = Pattern.compile(“規則”);
【強制】避免用 ApacheBeanutils 進行屬性的 copy。
說明:Apache BeanUtils 性能較差,可以使用其他方案比如 Spring BeanUtils, Cglib BeanCopier,注意均是淺拷貝。
【強制】velocity 調用 POJO 類的屬性時,直接使用屬性名取值即可,模板引擎會自動按規範調用 POJO 的 getXxx(),如果是 boolean 基本資料類型變數(boolean 命名不需要加 is 前綴),會自動調用 isXxx()方法。
說明:注意如果是 Boolean 包裝類對象,優先調用 getXxx() 的方法。
【強制】後台輸送給頁面的變數必須加 $!{var}——中間的驚嘆號。
說明:如果 var 等於 null 或者不存在,那麼 ${var} 會直接顯示在頁面上。
【強制】注意 Math.random() 這個方法返回是 double 類型,注意取值的範圍 0≤x<1 (能夠取到零值,注意除零異常),如果想獲取整數類型的隨機數,不要將 x 放大 10 的若干倍然後取整,直接使用 Random 對象的 nextInt 或者 nextLong 方法。
【推薦】不要在視圖模板中加入任何復雜的邏輯。
說明:根據 MVC 理論,視圖的職責是展示,不要搶模型和控制器的活。
【推薦】任何資料結構的構造或初始化,都應指定大小,避免資料結構無限增長吃光內存。
【推薦】及時清理不再使用的程式碼段或配置訊息。
說明:對於垃圾程式碼或過時配置,堅決清理乾淨,避免程序過度臃腫,程式碼冗餘。
正例:對於暫時被註解掉,後續可能恢復使用的程式碼片斷,在註解程式碼上方,統一規定使用三個斜杠(///) 來說明註解掉程式碼的理由。如:
1 | public static void hello() { |
心得
看完這篇「其他」後,一些小地方還是需要注意到的,像是正則表達式的使用;Math.random() 使用上的一些注意事項,這些基本上稍微看過有點印象,之後再使用的時候,就會多留意了。
結語
文章越看越多,技術越學越多,就會發現自己的不足;技術學到後面都會想要將基礎再重新在打得更加扎實。
以前在開發覺得理所當然的事情,例如:命名規則、命名規範,照著別人怎麼說就怎麼做的想法,並沒有好好去想為什麼要這樣設計和規範。
於是乎同事們推薦《阿里巴巴Java開發手冊》來做閱讀,書中提到種種規範《正確範例》、《錯誤範例》還有解釋定義說明;我相信在閱讀完這一系列後,一定會更加扎實且實在。
如對此書有興趣,建議去購買官方認證的書籍,給予官方支持。
註:如有侵權,通知即刪。
註:以上參考了
Alibaba-Java-Coding-Guidelines Github
Alibaba-Java-Coding-Guidelines English Version