日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里巴巴代码规范-note

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里巴巴代码规范-note 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

阿里巴巴在之前的云棲大會上正式發出了?阿里巴巴Java開發手冊. 并發布相關的Idea插件. 具體的信息可以到Github主頁?p3c查看. 最近將手冊重新學習了一遍, 發現在之前的工程項目里面, 有太多不規范的地方. 將特別注意的地方, 重點標記出來.

  • Object 的 equals 方法容易拋空指針異常. 盡量使用, Objects.equals(JDK7進行比較, 匹配).
  • 所有的相同類型的?包裝類對象之間值的比較,全部使用 equals 方法比較. 否則超過128的時候, 會出現bug.
  • RPC方法的返回值和參數必須使用包裝數據類型?. 防止初始化, 設置了相應的默認值. 這點非常重要
  • 在?getter/setter?方法中,不要增加業務邏輯,增加排查問題的難度. 可以使用lombok依賴包.
  • 循環體內,字符串的連接方式,使用 StringBuilder 的 append 方法進行擴展
  • ArrayList的subList結果不可強轉成ArrayList,否則會拋出ClassCastException?異常,即java.util.RandomAccessSubList cannot be cast to java.util.ArrayList.
  • 集合初始化時,指定集合初始值大小。
  • 創建線程或線程池時請指定有意義的線程名稱,方便出錯時回溯.
  • 線程資源必須通過線程池 供,不允許在應用中自行顯式創建線程. 需要通過線程池進行資源定位.
  • 線程池不允許使用 Executors 去創建,而是通過 ThreadPoolExecutor 的方式,這樣 的處理方式讓寫的同學更加明確線程池的運行規則,規避資源耗盡的風險。
  • 在一個 switch 塊內,都必須包含一個 default 語句并且 放在最后,即使它什么代碼也沒有
  • 盡量避免 if else else if.?超過三層的嵌套使用 衛語句來進行編程.
  • 類、類屬性、類方法的注釋必須使用 Javadoc 規范,使用/*內容/格式,不得使用 // xxx 方式.
  • 方法內部單行注釋,在被注釋語句上方另起一行,使用//注釋
  • 獲取當前毫秒數 System.currentTimeMillis(); 而不是 new Date().getTime();
  • 任何數據結構的構造或初始化,都應指定大小,避免數據結構無限增長吃光內存。
  • 及時清理不再使用的代碼段或配置信息
  • 對大段代碼進行 try-catch,這是不負責任的表現
  • 有 try 塊放到了事務代碼中,catch 異常后,如果需要回滾事務,一定要注意手動回 滾事務.?這個需要確定如何執行?
  • 防止NPE是調用者的責任. 明確出來. 要考慮你使用的對象是否可能為空指針.
  • 遠程調用的時候, 一律要求進行空指針判斷. 防止NPE問題的產生. 防止NPE問題, 可以使用JDK8的 optional.?http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html.
  • 異常信息應該包括兩類信息:案發現場信息和異常堆棧信息.
  • 大量地輸出無效日志,不利于系統性能 升,也不利于快速定位錯誤點.
  • 好的單元測試必須遵守AIR原則. 必須執行AIR.
    • A 自動化
    • I 獨立性
    • R 可重復
  • 單元測 試中不準使用 System.out 來進行人肉驗證,必須使用 assert 來驗證. 單元測試, 是一個重要而不緊急的事情.
  • 核心業務、核心應用、核心模塊的?增量代碼確保單元測試通過
  • 在工程規約的應用分層中 到的 DAO 層,Manager 層,可重用度高的 Service,都應該?進行單元測試。
  • 和數據庫相關的單元測試,可以設定自動回滾機制,不給數據庫造成臟數據
  • 小數類型為 decimal,禁止使用 float 和 double
  • 表必備三字段:id, create_time, mod_time. 自增ID, 創建時間, 修改時間.
  • 不過過早的進行分表, 單表行數超過 500 萬行或者單表容量超過 2GB,才推薦進行分庫分表。
  • 業務上具有唯一特性的字段,即使是多個字段的組合,也必須建成唯一索引.(建立唯一索引)
  • SQL操作消小心: 數據訂正時,刪除和修改記錄時,要先 select,避免出現誤刪除,確認無誤才能執 行更新語句
  • @Transactional 事務不要濫用. 事務會影響數據庫的 QPS,另外使用事務的地方需 要考慮各方面的回滾方案,包括緩存回滾、搜索引擎回滾、消息補償、統計修正
  • 在?Service 層出現異常時,必須記錄出錯日志到磁盤,盡可能帶 上參數信息,相當于保護案發現場. 一定要保留請求參數. 保留案發現場.
  • 線上應用不要依賴 SNAPSHOT 版本(安全包除外).
  • 給 JVM?設置-XX:+HeapDumpOnOutOfMemoryError 參數,讓 JVM 碰到 OOM 場景時輸出 dump 信息.
  • 在線上生產環境,JVM的Xms和Xmx設置一樣大小的內存容量,避免在GC 后調整堆 大小帶來的壓力。
from:?http://www.razorer.com/2017/12/17/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83-note/

總結

以上是生活随笔為你收集整理的阿里巴巴代码规范-note的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。