[Seasar-user:19271] Re: セッションのDIについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 2月 10日 (水) 15:30:23 JST


小林 (koichik) です.

Date:    Wed, 10 Feb 2010 14:13:57 +0900
From:    "Hidemasa Aoki" <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:19270] Re: セッションのDIについて

> HOTでは動くのに、COOLでは動かない。それは不具合でしょう。
> たとえそれが仕様だとしても、仕様そのものが不具合です、ということです。

正しい設定をしているのに HOT で動いて COOL で
動かないのなら不具合です.

しかし間違った設定をした場合は,HOT でのみ
動く場合や COOL でのみ動く場合があっても,
そもそも設定が間違っているのですから
不具合でもなんでもありません.
# 言語仕様でいうところの「未定義」ですね.

不具合だと断言する前に,まずはどのような設定をして
動かなかったのかを明確にしてください.
不具合かどうかはその後で判断します.

> HOTでテストOKになったから、COOLでのテストに進めた。
> が、クールディプロイにしたとたん、動かなくなった。
> 顧客からは、「本当にテストしてきたのか」とクレームを受けた。

それはそうでしょう.
元々 HOT deploy は,IDE 上で利用するものです.
それは単なる動作確認およびデバッグであり,
本来の意味のテストではありません.

もし HOT でしか動かしていなかったのなら,
「本当にテストしてきたのか」とクレームを
付けられるのは当然のことです.

> いくらご理解ある顧客でも、「HOTで動けばCOOLで普通動くんじゃないの?逆ならま
> だしも」というのが、ごく普通の認識なのです。

それは認識を正していただくしかありませんね.
設定を間違った場合,HOT の方が動いてしまいやすい
傾向があります (常にそうではありませんが).

これは,COOL では初期化時にに全てのコンポーネントを
有効にするのに対し,HOT では必要なコンポーネント
のみが有効になるので,使われない部分に問題があっても
表面化しないこと,および,全体を組み合わせたときに
発生する問題が表面化しないといった理由があります.

それから,COOL では HttpServletRequest や HttpSession が
使えない初期化時にインターセプタを適用したクラスを
動的に生成するのに対して,HOT では HttpServletRequest や
HttpSession を使えるリクエスト時にインターセプタを
適用したクラスを動的に生成するというタイミングの
違いもあります.

インターセプタの問題などは,COOL に限らず
Seasar2.3 以前の古いバージョンでも動かないような
間違った設定をした場合に,HOT では動いてしまう
場合があります.
しかし,それは設定が間違っているのであって,
正しい設定をすれば HOT でも COOL でも動きます.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内