產品技巧:從容應對老版本相容問題
做客戶端的同學對老版本相容肯定是深惡痛絕,每到這個時候就會羨慕做web的小夥伴,起碼人家能保證所有人看到的都是最新的版本,不用費心升級,更不用考慮老版本相容。
1、老版本相容問題的由來
老版本相容為什麼這麼噁心呢,舉個栗子,假設客戶端有一個評論板塊,使用者的個人中心裡面有“我的評論”,記錄使用者發表過的所有評論,樣式大概是這樣:

單條評論樣式
而且為了方便使用者檢視,這個資訊可以直接點選檢視詳情。那麼問題來了,以往的版本,只有資訊下面能發表評論,而最近小視訊很火,於是大家開會,一拍腦袋決定在app裡面增加一個小視訊板塊,也需要有評論,這條評論也會記錄在使用者的評論列表中。
於是,假設有一個像我這麼無聊的使用者,在新版本小視訊下面釋出了評論,又跑到老版本上去看,發現點選資訊標題,客戶端沒有反應(更老火的情況是客戶端沒對無法識別的型別做處理,點選後直接崩掉了~)。
或許有人會說這麼無聊的使用者很少,那再進一步,假設你們為了加強使用者之間的交流,在首頁會展示你關注的人在app裡面的動態,那在一個沒升級最新版本的使用者的首頁就會出現上面這一條,無法點選的狀態。
類似的情況還有很多,比如有一個廣告位,之前只能填資訊,現在需要能填內嵌頁,位置是一樣的,展示也一樣,只是多支援一種形式,但是如果不管老版本的話,那部分使用者還是能看見,但是點不動(千萬別崩)~
2、以前的處理方式
以往遇到這種情況,我們的處理辦法非常簡單粗暴,直接不給老版本返回,像廣告位這種做起來倒簡單,假設你填了新的型別,請求來源是老版本,就當沒配這個位置就是了。
但是上面評論那個就複雜得多,假設你們一頁展示二十條資料,服務端同學得去除掉新型別,然後再從剩下的資料裡面取20條返回,無形中加大了服務端壓力,而且當後面再增加新型別的時候,服務端小夥伴會崩潰的~
3、最終解決方案
在被老版本相容折磨了無數個版本之後,我研究了一堆app,發現了一個終極解決辦法,對無法識別的新型別,給一個統一的彈窗,或者跳轉一個統一的頁面,類似於這樣:

彈窗提示

單獨的頁面提示
畢竟,除了強更的app(關於升級,可以看我的另一篇文章:升級這件“小”事),總有一群對你的升級彈窗毫不在意的使用者,用這種方法,只需要客戶端加一個預設判斷,換來的是你不用考慮這個功能是不是需要相容老版本,服務端小夥伴也不用花時間去打一個又一個補丁,還可以巧妙的提示使用者:升級新版本有好東西喲(/≧▽≦)/
在使用這種方式的應用,再舉個栗子,微信電腦版,開啟小程式的時候,會有這個頁面:

微信電腦版