- Taipei, Taiwan
-
《阿里Java開發手冊》 | 設計規約 (完)
【強制】 存儲方案 和 底層資料結構 的設計獲得評審一致通過,並沉澱成為文件。 說明: 有缺陷的底層資料結構容易導致系統風險上升,可擴展性下降,重構成本也會因歷史資料遷移和系統平滑過渡而陡然增加,所以,存儲方案和資料結構需要認真地進行設計和評審,生產環境提交執行後,需要進行 doub...
-
《阿里Java開發手冊》 | 工程結構 - 伺服器
【推薦】 高並發伺服器建議調小 TCP 協議的 time_wait 超時時間。 說明: 操作系統預設 240 秒後,才會關閉處於 time_wait 狀態的連接,在高並發訪問下,伺服器端會因為處於 time_wait 的連接數太多,可能無法建立新的連接,所以需要在伺服器上調小此等待值。...
-
《阿里Java開發手冊》 | 工程結構 - 二方庫依賴
【強制】 定義GAV遵從以下規則: 1. G roupID 格式:com.{公司/BU }.業務線 [.子業務線],最多 4 級。 說明: {公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一級子業務線可選。 正例: com.ta...
-
《阿里Java開發手冊》 | 工程結構 - 應用分層
【推薦】 圖中預設上層依賴於下層,箭頭關係表示可直接依賴,如:開放接口層可以依賴於 Web 層,也可以直接依賴於 Service層,依此類推: 開放接口層:可直接封裝 Service 方法暴露成 RPC 接口;通過 Web 封裝成 http 接口;閘道器控制層等。 終...
-
《阿里Java開發手冊》 | MySQL 資料庫 - ORM映射
【強制】 在表查詢中,一律不要使用 * 作為查詢的欄位列表,需要哪些欄位必須明確寫明。 說明: 增加查詢分析器解析成本。 增減欄位容易與 resultMap 配置不一致。 無用欄位增加網路消耗,尤其是 text 類型的欄位。 【強制】 POJO 類的...
-
《阿里Java開發手冊》 | MySQL 資料庫 - SQL語句
【強制】 不要使用 count(列名) 或 count(常數) 來替代 count(*),count(*) 是 SQL92 定義的標準統計行數的語法,跟資料庫無關,跟 NULL 和非 NULL 無關。 說明: count(*) 會統計值為 NULL 的行,而 count(列名) 不會統...
-
《阿里Java開發手冊》 | MySQL 資料庫 - 索引規約
【強制】 業務上具有唯一特性的欄位,即使是組合欄位,也必須建成唯一索引。 說明: 不要以為唯一索引影響了 insert 速度,這個速度損耗可以忽略,但提高查找速度是明顯的;另外,即使在應用層做了非常完善的校驗控制,只要沒有唯一索引,根據墨菲定律,必然有髒資料產生。 【強制...
-
《阿里Java開發手冊》 | MySQL 資料庫 - 建表規約
【強制】 表達是與否概念的欄位,必須使用 is_xxx 的方式命名,資料類型是 unsigned tinyint (1 表示是,0 表示否)。 說明: 任何欄位如果為非負數,必須是 unsigned。 注意:POJO類中的任何布林類型的變數,都不要加 is 前綴,所以,需要在 設置...
-
《阿里Java開發手冊》 | 安全規約
【強制】 隸屬於用戶個人的頁面或者功能必須進行權限控制校驗。 說明: 防止沒有做水平權限校驗就可隨意訪問、修改、刪除別人的資料,比如查看他人的私信內容。 【強制】 用戶敏感資料禁止直接展示,必須對展示資料進行脫敏。 說明: 中國大陸個人手機號碼顯示為:137****...
-
《阿里Java開發手冊》 | 單元測試
【強制】 好的單元測試必須遵守 AIR 原則。 說明: 單元測試在線上運行時,感覺像空氣(AIR)一樣並不存在,但在測試質量的保障上,卻是非常關鍵的。好的單元測試宏觀上來說,具有自動化、獨立性、可重複執行的特點。 A:Automatic(自動化) I:Independent...