Cache的陷阱
說到Cache
大部分看到的實作
都是利用裝飾者模式來做快取
用久了也覺得沒什麼稀奇
不過日前卻碰到一次特殊的問題
我們在原本快取的class上
新增一個欄位
推到正式環境
原本想說應該沒事
結果一推上去就狂噴警告
null reference check
發生的當下緊急退版
慢慢找問題原因
後來才發現是因為快取的Key值
在我們新增物件欄位後並沒有更新
而這個新增的欄位
好死不死又是class
而不是基礎型別
所以從快取拿出來後
就直接是null
最後的解法是
在建構式當中
先給欄位預設值
上版之後再手動清掉快取
才把問題解決
快取雖然簡單有效
但是實際上遇到的問題還不少
遇到有快取的物件
寫code時還是得多想一下
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Frank's Talk!