學習阿里巴巴開發手冊-6

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

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

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

  可以使用

  if(condition){

     .. return obj;

  } 

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

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

5.循環體中語句要衡量性能,儘量移至循環體外處理(如定義對象、變量、獲取數據庫連接,進行不必要的try-catch操作)

6.做批量操作的接口,接口入參保護。

7.參數校驗

   1)調用頻率低的方法

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

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

   4)對外提供的開放接口,(如RPC/API/HTTP接口)

   5)敏感權限入口

8.不需要參數校驗

   1)可能被循環調用的方法,方法說明外部參數檢查要求

   2)底層調用頻度高的方法 例如DAO參數校驗

   3)聲明private方法,只會被自己調用的方法


補充--引自http://www.cnblogs.com/huahua035/p/6905504.html

工作中很少提到“入參保護”這個詞,更多的是“參數校驗”的說法;談下個人對接口入參保護的理解:

1、接口入參保護,“保護”的是服務端應用,即接口提供方,最常見的做法就是校驗入參的有效值範圍和設置批量操作白名單;比如,接口入參中包含日期時,校驗日期必須在N天範圍內,或者請求返回的記錄總數必須在X條以內(比如10W條,否則縮小請求查詢的記錄範圍),或者請求返回的記錄必須分頁查詢返回;
開發手冊中,尤其提到的場景就是批量操作,因爲批量操作非常耗時耗資源(服務端),批量操作的批量數應該有上限,而不是無限的。假如客戶端請求一次批量操作10W筆轉賬訂單,服務器應該果斷拒絕,很不是很SB的忠實執行,會對服務端造成嚴重影響的批量請求,服務器端應做好保護性編程,必要時應直接失敗,並在Result中返回明確的errorCode和errorMsg;而且,對應批量操作,實際應用中還會配置批量操作白名單!
2、入參保護,一般都是通過衛語句實現:if(請求記錄>10000條) return;直接返回。

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章