中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

Webでの、処理単位を良く考えろ

Windowsアプリケーションでstaticを使ってなんらかかの値を保持する(キャッシングも含む)つくりになっていた場合、そのつくりをそのままの形でWebに移行させるのはかなり難しい。

Windowsアプリケーションの場合ログインさせたりする場合でもプロセスが異なる(メモリ空間が異なる)場合が大半であろう。
一方Webの場合には処理単位はリクエスト単位だし、各ユーザは好き勝手にアクセスしてくるのでマルチスレッドに動いていると思うべきである。

その際にユーザ単位のデータをstaticに保持していたり、lockを施さずに値を書き換えたりしているとそれだけで再現性の低いバグを作りこんでしまうことになる。

#プロセスとAppDomainの関係を除く(^^

投稿日時 : 2005年2月15日 21:15

コメントを追加

# re: Webでの、処理単位を良く考えろ 2005/02/16 2:18 菊池

static =アプリケーショングローバル
static でないもの=コンテキスト依存

という意識の欠如と

Webアプリケーションにとってのアプリケーショングローバル=マルチユーザ
Winアプリケーションにとってのアプリケーショングローバル=シングルユーザ

 というアプリケーショングローバルという位置づけそのもの変化

 この両者の相乗効果によって問題が起こるのであって、staticを排除してもApplicationにやたらめったらアクセスしたら同じ問題は起こると思う。
 ソースコードがどのようなコンテキストに依存しているかきちんと理解してもってこなきゃ駄目よってのが根本ではないでしょうか。

# re: Webでの、処理単位を良く考えろ 2005/02/16 3:02 うに。

とはいえ、VB出身だとグローバル好きすぎ。

1つのクラスに沢山のprivate変数が存在。
多くのメソッドがそのprivate変数を操作。
結果、「誰がどこで変更した?」とわけわか。

そういった思想を持ち込まれると凹む。

# re: Webでの、処理単位を良く考えろ 2005/02/16 9:19 中 博俊

staticもApplicationも結局は麻薬たるGlobal変数でしかないんですよね。
それが分からないとLightWeightでGJ!とか安易な設計に・・・

#すいません結局愚痴です(^^;

タイトル
名前
URL
コメント