空數據:分布式數據中的某些節點數據為空,解析的數據和對象與空數據的處理不兼容,導致異常。
編解碼不正確:編碼問題常見於文本(中文/英文)的編解碼,特定格式的編解碼,如URL和媒體數據格式,導致內容加載過程中出現錯誤和異常。
格式不正確:由於數據網格的寫入差異,配置項中的數據解析存在錯誤。如果數據的版本不兼容,如果最初用作字典的數據被配置為數組。
特定場景下的異常:在數據開發和測試過程中沒有發現異常,但是在特定的上線環境下會出現異常,比如某個腳本的邏輯分支異常處理不夠全面,或者某個服務器/機房出現異常。
對於框架層面,可以做壹些策略上的調整,對上述雲數據分布進行拆分、避免和優化的能力,導致其他異常。
延遲更新/讀取:在APP啟動階段不發起配置文件的更新和讀取,有兩個好處:1)啟動階段任務量身定制,啟動速度快;2)對於更新階段產生的異常,不會影響APP的啟動,避免每個啟動階段都產生壹個異常的情況。
唯壹狀態:狀態是唯壹的,有兩個級別的目標,1)配置文件已成功更新到新版本,新版本的功能要等到下次APP啟動後才能生效;2)與配置相關的狀態改變應該是最早的,並且僅壹次。否則,有必要建立壹種通知狀態變化的機制。
數據驗證:數據驗證包括數據完整性驗證、數據有效性驗證、數據類型驗證等。數據從雲端發送,然後存儲在本地。數據的存在並不意味著數據是正確的,它是可以被解析的,數據能夠支撐業務按預期運行,這樣數據才是有效的。或者本地數據格式,在產品升級過程中,數據版本不兼容,這也是需要考慮的。
異常報告:異常報告可以分為數據解析時生成的異常報告和配置加載到業務時生成的異常報告。處理從雲端發來的數據的過程需要異常捕獲,同時妳在使用過程中有關於配置部分的邏輯,也需要異常捕獲。出現異常時上報給雲端,這樣可以及時發現壹些錯誤的配置,及時止損。
In-end rollback:當最新的配置發送到客戶端時,在解析或使用配置數據的過程中出現異常,要麽當前功能不可用,要麽直接生成異常。在這兩種情況下,它都是用戶的功能,未能達到預期。理想狀態是當加載新的配置數據時,出現異常。這應該可以恢復以前版本的配置,供用戶繼續使用。結合異常報告的能力,修改新的配置數據並發送它。
安全模式:記得剛接觸電腦的時候,用的是Windows98系統。有時系統是藍色的,當我重新啟動它時,我會被提示進入安全模式。這種模式下第壹感覺就是顯示器分辨率極低,體驗很差。當時我不明白為什麽會有安全模式。當系統出現壹些特定級別的異常時,再次打開App只運行核心功能,可以避免之前異常的再次出現。當應用程序打開關於異常的日誌時,它也可以提交到雲,由R&D人員進行相關分析和優化。