キャッシュクリアとnullチェック
よく出てくるのでメモ。
- 原則
- キャッシュを取得し、変数に格納してからnullチェックをする。
- アンチパターン
- キャッシュのnullチェックを行い、キャッシュ!=nullだったらキャッシュ取得して変数に格納
- アンチパターンに潜在するバグ
- 「キャッシュ!=null」の場合、次にキャッシュを取得して変数に格納し業務ロジックが走るが、このキャッシュ取得時には「キャッシュ == null」に変化している可能性がある。
つまり、以下の順序が問題になるわけなのです。
「.NETエンタープライズWebアプリケーション開発技術大全〈Vol.3〉ASP.NET応用編」の139ページに解説があります。
.NETエンタープライズWEBアプリケーション開発技術大全VOL.3 (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ)
- 作者: 赤間信幸
- 出版社/メーカー: 日経BP社
- 発売日: 2004/06/05
- メディア: 単行本
- 購入: 5人 クリック: 89回
- この商品を含むブログ (24件) を見る
*1:キャッシュはタイマーや容量の関係等で、いつ消えてもおかしくない