At Sun, 24 Nov 2002 00:47:08 +0900,
Koji Arai wrote:
> いーえー、生かして頂いて感謝です。(^^

ああ、良かった。:-)

> そんな気がしますが、expiration を指定しなければ良いだけなの
> でこのままでも良いように思います。max_num が第一引数の方が
> filecache にとっては都合が良かった(newするとき余計な nil を
> 指定しなくて良い)わけですが、現状の max_obj_size というのは
> 利用頻度の高い物と想定されているのでしょうか?

正直に言うと、どういう順番でも良いです。一応、自分がどういう風に利用し
たいと思ったか、説明してみます。

元々自分がRuby/Cacheを作った理由は、BugCommunicatorというバグ追跡シス
テムにおいて、レスポンスを高速化するためでした。WWWインターフェースを
用いて、現在登録されているバグの表示等を行うとき、大抵は読むだけで、デー
タの変更を伴わないと考えられます。そこで、パラメータをチェックして、デー
タベースから情報を取り出し、それをERbLightで加工する、という過程を排除
できるように、よくあるクエリに対するレスポンス(HTML等)をキャッシュすれ
ば、速くなる可能性があります。

この場合、バグに付随させたファイルのように非常に大きいオブジェクトは、
メモリが無駄になるだけで、キャッシュすることにあまり意味がありません。
それがmax_obj_sizeに当たります。また、全体でもたくさんメモリを食わない
ようにしたいので、max_sizeを追加しました。クエリされていないレスポンス
を永遠に保持することも無駄なので、expirationを追加しました。私の使い方
ではむしろ、max_numはあまり役に立ちません。ただ、一般的には役に立つこ
ともあるだろうし、実装するのは容易だったので、入れることにしただけです。
入れるとすれば、expirationの後よりmax_sizeの後の方が、関連した引数が連
続することになるので適切かなあと思った次第です。

どうしたら良いでしょうねえ。私の使い方なら、どこにmax_numを置いても、
結局明示的にnilを指定する必要があるので、変えましょうか?こういう時は
やっぱりkeyword argumentsがあると便利だなと感じてしまいますね。

おくじ