読者です 読者をやめる 読者になる 読者になる

PerlRequest単位のモデル

あとPerRequest系のモデルってみんな使わないのかな?僕の場合はPerRequestのモデルの方が多いんだけど・・・。

ユーザーからの情報を受け取って処理するモデルが結構あるから自然とPerRequestになるんだけどもしかしてそーゆーのはモデル化するのに相応しくないとか?

モデルをAppServer起動時に作ってしまう形(Singleton)にする場合は、リクエスト単位での情報はメソッドの引数にわたる形になりますね。DIコンテナ使った場合のスタイルもこうなりますね。なので、モデルは基本的にStatelessになります。

リクエスト単位での情報を使ってコンストラクタに渡して、インスタンスを生成したいという話であれば、PerRequestで作りたいという話があるのかもしれないなぁと。それが変なことかというと、変なことではない気はします。

これは、設計のポリシーだけの問題な気はします。

Javaはマルチスレッドベースの開発が基本なので、モデル部分をStatelessに作ったほうがマルチスレッド周りのバグを作り込みにくいというところからも、モデルをStatelessにするアプローチが流行ったんだと思います。後はインスタンスの生成コストを抑えるって話ですね。

Perlだとマルチプロセスベースが現在は主流なので、その点、モデルをステートレスにする事の必然性はないような気はします。そういう点では、インスタンスを生成することのコストだけの問題かもしれないですね。

Mooseを使う場合は、現状ではインスタンスの生成コストは10%前後ですが若干高いので、AppServer起動時にインスタンスを生成する形のほうがいいんじゃないかという気はします。

微妙にfbisさんが問題とされてる話を理解していない気もしますが、リクエスト単位の情報を扱いたいからPerRequestにする必要があるということはないんじゃないかなぁという気はします。