學習阿里巴巴開發手冊 6

2021-08-09 11:41:17 字數 1097 閱讀 6246

1.在switch塊內,每個case通過break/return等終止,或者說明繼續執行到那個case為止。每個switch塊內,必須包含乙個default語句且放在最後。即使什麼沒有。

2.if/else/for/while/do語句中必須使用大括號,即使一行**

3.表達異常的分支時,少用if-else

可以使用

if(condition){

.. return obj;

如果非要使用,勿超過3層。超過三層可以使用衛語句、策略模式、狀態模式等實現

4.除常用方法(get***  is***)等外,不要在條件判斷中執行其他複雜語句,提高可讀性

5.迴圈體中語句要衡量效能,盡量移至迴圈體外處理(如定義物件、變數、獲取資料庫連線,進行不必要的try-catch操作)

6.做批量操作的介面,介面入參保護。

7.引數校驗

1)呼叫頻率低的方法

2)執行時間開銷很大的方法

3)需要極高穩定性和可用性方法

4)對外提供的開放介面,(如rpc/api/http介面)

5)敏感許可權入口

8.不需要引數校驗

1)可能被迴圈呼叫的方法,方法說明外部引數檢查要求

2)底層呼叫頻度高的方法 例如dao引數校驗

3)宣告private方法,只會被自己呼叫的方法

補充--引自

1、介面入參保護,「保護」的是服務端應用,即介面提供方,最常見的做法就是校驗入參的有效值範圍和設定批量操作白名單;比如,介面入參中包含日期時,校驗日期必須在n天範圍內,或者請求返回的記錄總數必須在x條以內(比如10w條,否則縮小請求查詢的記錄範圍),或者請求返回的記錄必須分頁查詢返回;

開發手冊中,尤其提到的場景就是批量操作,因為批量操作非常耗時耗資源(服務端),批量操作的批量數應該有上限,而不是無限的。假如客戶端請求一次批量操作10w筆轉賬訂單,伺服器應該果斷拒絕,很不是很sb的忠實執行,會對服務端造成嚴重影響的批量請求,伺服器端應做好保護性程式設計,必要時應直接失敗,並在result中返回明確的errorcode和errormsg;而且,對應批量操作,實際應用中還會配置批量操作白名單!

2、入參保護,一般都是通過衛語句實現:if(請求記錄》10000條) return;直接返回。

阿里巴巴開發手冊

反例 string str start for int i 0 i 100 i 2 注意 math.random 這個方法返回是double型別,注意取值的範圍 0 x 1 能夠取到零值,注意除零異常 如果想獲取整數型別的隨機數,不要將x放大10的若干倍然後取整,直接使用random物件的nexti...

學習阿里巴巴開發手冊 補充

1.獲取單例物件需要保證執行緒安全,其中的方法也要保證執行緒安全。2.建立執行緒或執行緒池時 請指定有意義的執行緒名稱。3.執行緒資源必須通過執行緒池提供,不允許在應用中自行顯示建立執行緒。4.執行緒池不允許使用executors去建立,而是通過threadpoolexecutor的方式 5.dat...

學習阿里巴巴開發手冊 12

索引規約 1.業務上具有唯一特性的字段,即使是組合字段,也必須建成唯一索引。說明 不要以為唯一索引影響了 insert 速度,這個速度損耗可以忽略,但提高查詢速度是明顯的 另外,即使在應用層做了非常完善的校驗和控制,只要沒有唯一索引,根據墨菲定律,必然有髒資料產生。2.超過三個表禁止 join。需要...