0

リクエストの最後にそれをクリアする限り、クラス レベルのインスタンス不変 (つまり、MyClass.foo) を格納することは「スレッド セーフ」と見なされますか? たとえば、before_filter で値を設定し、after_filter でクリアしますか?

私の理解では、それをクリアしないと..私が望まない将来の要求のために存在することになります。でも、セットしてクリアすれば..それでいいの?または、2 つの要求が重複して衝突が発生し、データが変更される可能性はありますか?

4

1 に答える 1

0

リクエストとセッションの間で情報が流出する可能性があるため、これはおそらく非常に悪い考えです。スレッドセーフな短期キャッシュが必要な場合は、request作成されたオブジェクトにいつでもメソッドをスパイクできます。

セッション情報をモデルのグローバル コンテキストにプッシュしようとしている場合は、MVC 設計パターンに反しています。モデルが必要とする情報は、明確に定義された方法で渡す必要があります。特に、これにより、桁違いのテストがより簡単になり、信頼性が高くなります。

于 2012-11-29T22:11:18.063 に答える