新功能要上線,老功能該如何下線呢,下面列舉一些具體方案的對比說明:
一、從相容性上考慮:
方案名稱
說明優點
缺點新介面完全相容老介面
1、最好的辦法,客戶端無需做處理
2、需要服務端在介面資料結構設計上,要考慮到擴充套件性的需求,對服務端介面設計要求比較高
1、可以下線老的介面
2、資料能夠最大程度和新版保持一致
無新介面適配老介面
1、也是比較好的方法,客戶端無需做處理
2、服務端會增加一部分工作量
1、可以下線老的介面
2、能夠保證資料正確,但不保證新功能被支援
1、需要對輸出的資料結構進行轉換
新介面無法適配老介面
如果老的介面不能下線,後期維護成本大
無1、維護多套老介面,成本非常大,沒有優點可言,可見介面設計是很重要的
二、從下線角度考慮:
方案名稱
說明優點
缺點按比例切換老介面
如,根據userid取模,老介面以一定的百分比逐步下線
按比例隨機返回錯誤提示
如,訪問老功能,隨機出現錯誤提示』該介面已下線『等等。
1、不讓某個使用者一直失敗,但又通過一定比例通知到使用者該介面即將廢棄。
1、使用者也可能會認為是系統問題
在一定時間段,按比例隨機返回錯誤提示
某乙個時間段內,執行方案2
1、盡量降低方案2的負面影響
1、按比例切換
//缺省會切換20%的使用者
long userid = getbuyerid();
int mod = (int)userid%100+1;
int rate = integer.parseint(getconfigratevalue(20));//預設20%
if(mod<=rate)
return true;
2、在一定時間段,隨機給出錯誤提示
int hour = calendar.get(calendar.hour_of_day);
if 'hour' is in this period
string period = getconfighourperiod()//12-18
string hourperiod = period.split("-");
int start = integer.parseint(hourperiod[0]);
int end = integer.parseint(hourperiod[1]);
if(hour >=start && hour<=end)
}return false;
老員工的工作心得
一 工作中脫穎而出的三要素 1.在旋窩中心工作 乙個人應該主動去做核心業務,主動去解決核心問題 這些業務和問題是公司管理層最關注的,如果你做出成績,最容易被看到 2.成為解決問題的高手 為了讓自己成為解決問題的高手,你一方面得在某個專業方向上有深度積累,這個只能學習學習再學習,實踐實踐再實踐 另一方...
功能函式記錄
include int execlp const char file,const char arg,char 0 函式說明 execlp 會從path 環境變數所指的目錄中查詢符合引數file的檔名,找到後便執行該檔案,然後將第二個以後的引數當做該檔案的argv 0 argv 1 最後乙個引數必須用...
日誌記錄功能
給自己的程式,加上記錄日誌的功能。以下是c 可以直接複製使用的。1 using system 2using system.collections.generic 3using system.text 4using system.io 56 namespace pingmock 7 3132 33 判...