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

Hidemasa Aoki [E-MAIL ADDRESS DELETED]
2010年 2月 12日 (金) 17:43:49 JST


仮に正しい操作方法をマニュアルに明記していたとしても、100人いるユーザのうち
たとえば50人がその正しい操作方法に気づくことができず一度は操作ミスをしたら、
それは「不具合」だと思います。
エンジニアの不具合に対する解釈の違いかもしれませんが、我々なら、これは「マ
ニュアルの不具合」もしくは「設計の不具合」と認識します。
ちゃんとマニュアルを見ていないほうが悪いんだ、とユーザ側の問題にするのは筋違
いだと思っています。
やはり、解釈の仕方が違うのでしょうか。

上記の解釈でいえば、ちゃんと設定したら起きない問題でも、そのちゃんとした設定
が分かりにくかったり、大変だったりすれば、不具合だと思います。

今回の件は、正しい設定方法というのがFAQ(?)に書かれているだけでググっても
なかなか出てこないようなものなので、上記の「分かりにくい設定」に該当するので
はないかと思います。

ログイン機能とかでよくやるであろう実装ですし、もっと目立つところに書いておい
てほしいな、と思います。

理想は、COOLで動かないなら、HOTでも動かないようにしてほしいな、です。
(COOLとHOTで挙動が変わるというのが不思議でならないですが・・・)

お忙しいところ、長々とすみませんでした。

-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Yasuo Higa
Sent: Friday, February 12, 2010 5:04 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:19298] Re: セッションのDIについて

ひがです。

> 多くの人が不具合と思いそうなことを不具合と認められないなら、進歩はないと思
い
> ました。
> 「不具合」の解釈が人によって違うせいかもしれませんが、一般的には「具合の悪
い
> ものすべて」を不具合と呼ぶと思います。
>
> 詳しい現象を記述していなかったので、記述させていただきます。
> もしかしたら、認識違いがあるかもしれないからです。
>
こう対応したら大丈夫ですよといっているにもかかわらず、
その対応をせず、不具合だというのは、問題だと思いますよ。
下記の現象なら小林さんの言うとおり、
http://www.seasar.org/wiki/index.php?FAQ%2FS2AOP#z685b23f
のように設定したら大丈夫なはずです。

ちゃんと設定したら起きない問題ならそれを不具合とはいわないはずです。

逆にそれをフレームワークの不具合というなら、
どんなフレームワークも不具合だらけだと思いますよ。

>
> public class LoginInterceptor extends AbstractInterceptor {
>
> 	private static final long serialVersionUID = -803577202478748124L;
>
> 	private OperatorDto operatorDto;
>
> 	@Override
> 	public Object invoke(MethodInvocation arg0) throws Throwable {
>
> 		this.operatorDto = (OperatorDto) SingletonS2ContainerFactory
>
> .getContainer().getComponent(OperatorDto.class);
> 		String operatorName = this.operatorDto.getName();
> 		if (operatorName == null || operatorName.length() == 0)
> 			return LoginPage.class;
> 		else
> 			return arg0.proceed();
> 	}
>
> 	public OperatorDto getOperatorDto() {
> 		return operatorDto;
> 	}
>
> 	public void setOperatorDto(OperatorDto operatorDto) {
> 		this.operatorDto = operatorDto;
> 	}
> }
>
小林さんが紹介している方法とは別に、
コンテナから直接とる解決策もあります。

コンテナから直接とる方法は、見た目がわかりやすいので
私がお勧めしている方法ですが、その場合、インスタンス変数ではなく
ローカル変数を使ってください。
インスタンス変数だと複数スレッドでアクセスされると問題が
起きる可能性があります。
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-user



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