X



ウェブプログラミングで使えるデザインパターン

0001nobodyさん
垢版 |
03/11/22 06:56ID:Lh+gL3bz
ゲッチューポン
0002nobodyさん
垢版 |
03/11/22 11:16ID:???
結構良スレっぽいスレタイなのに、>>1がクソで萎え
0003nobodyさん
垢版 |
03/11/22 22:25ID:???
こんなスレはシングルトンであって欲しいものだ。
0004nobodyさん
垢版 |
03/11/22 22:44ID:LH4aw5t2
とにかくリクエストとレスポンスが一組になる
1パターンリクエストに対し数パターンのレスポンスがあって、他パターンのリクエストと共通だったりする
0006nobodyさん
垢版 |
03/11/23 19:42ID:???
サーブレットは知らんがCGI、PHPあたりだとだいたい

フォームデータ処理
if
 エラー表示1
else if
 エラー表示2
・・・
else if
 処理1
 フェーズ1表示
else if
 処理2
 フェーズ2表示
・・・・
って感じになるな
0007nobodyさん
垢版 |
03/11/23 21:40ID:???
>>6
えと、>>1はGoF辺りのデザパタを聞きたいんではないかと。

後、それダサい。
0009nobodyさん
垢版 |
03/11/24 15:47ID:???
ここでいうデザインパターンってなんですか?
0010nobodyさん
垢版 |
03/11/24 23:53ID:6o1aVvpy
GoFに限定しないオブジェクト指向にも限定しない
寧ろウェブプログラミングのためのパターン
0011nobodyさん
垢版 |
03/11/25 17:04ID:???
GOFのどれがWEBプログラミングに使われるんですか?
0012nobodyさん
垢版 |
03/11/26 12:58ID:e6YvtpHr
PHP関連でそういった事を解説してるサイトなかった?>WEBPrograming/DesignPattern
Stateパターンでログイン・ユーザの認証状態を管理する。etc

コーディングに特化しない話題でもいいなら、
WEB関連&&デザインパターンという事で、こんなサイトも。
http://www.designpattern.lu.unisi.ch/index.htm
0013nobodyさん
垢版 |
03/11/26 13:08ID:???
まずはPerl5やPHPにGoFを翻訳することからはじめるか
Perl5やPHPって継承やインターフェース使えたっけ?
0015nobodyさん
垢版 |
03/11/27 00:07ID:0zBWj9/p
>>13
GOFの実装例なら、すでに幾つかありますね。
http://www.perldesignpatterns.com/

Perl5 や PHP4 にはインターフェースのための構文は用意されていないので、
(標準では)Javaみたいにインターフェースで定義したメソッドの実装を強制する事は出来ません。
多くのサンプルでは、インターフェース代わりに空メソッドを定義しているだけか、
実行時にメソッドが実装されていなければ終了する。と、いったものが殆んどの様です。

インターフェースを継承したクラスがそのメソッドを実装しているか確認したいのであれば。
perlについては、CPANにコンパイル時にインターフェースをチェックするモジュールがあります。
PHPでは、PHP5からインターフェースが導入されています。

0016nobodyさん
垢版 |
03/11/27 00:41ID:???
ごめん、インターフェースって何?継承とは違うのかい?
0017nobodyさん
垢版 |
03/11/27 02:07ID:???
インターフェースは知らんけど継承はわかるのか?
なんじゃそりゃ
0018nobodyさん
垢版 |
03/11/27 02:15ID:???
ウェブプログラミングじゃあんまGoF通用しないんじゃね?
Perl PHP Rubyじゃインターフェース無いし、GUIもHTML吐いて作るわけだし、
インスタンスを次のセッションで使うのもしんどいじゃん
0019nobodyさん
垢版 |
03/11/27 06:30ID:???
>>18
>Perl PHP Rubyじゃインターフェース無いし
プロトタイプベースだからいらんでしょ。アホか。

>GUIもHTML吐いて作るわけだし、
むしろその辺のGUI部品より融通が利くわけだが。


後、J2EEとかASP.NETはWebプログラミングに入らないんですか?
完全無料主義者のあなたの中では。
0020nobodyさん
垢版 |
03/11/27 07:30ID:???
オブジェクト指向が必要なほど大規模になることもなく
やっぱり>>6みたいなものになっちまうのか

>>6を汎用的に書ければいいんだけど
0021nobodyさん
垢版 |
03/11/27 07:31ID:0zBWj9/p
>>18
オブジェクトの永続化について調べてみるといいかも。
PHPなんかでは、普通にセッションにオブジェクトを格納出来るよ。

0022nobodyさん
垢版 |
03/11/27 08:17ID:0zBWj9/p
>>20
一連の処理をひとつのアプリケーションとし、
各処理をそのアプリケーションの状態とみなすと、
Stateパターンを適応できますね。perlのCGI::Application みたいに。

勿論、非オブジェクト指向でも同様の処理は可能です。
ハッシュ等にキーと処理へのポインタを登録し、
与えられたキーの処理を呼び出すといった方法で、冗長な分岐から解放されます。


ところで、ウェブプログラミングで*使える*(eq 有用な?)デザインパターンって、
例えばどんなの?
0023nobodyさん
垢版 |
03/11/27 08:46ID:8RwaY1jw
Webプログラミングの場合、GUIより、モデルやコントローラ周りでの
プログラミングでデザインパターンを多用するケースが多い気が。

結城 浩著書の本は役立ってます。

0024nobodyさん
垢版 |
03/11/27 11:23ID:lzQjXivq
>>19がなんでそんな必死になるのかわからんし
全然反論になってない
0025nobodyさん
垢版 |
03/11/27 12:31ID:???
ごめん、クラスの組み合わせがデザインパターン?
つかデザインパターンを易しく説明きぼんぬ。まじで。
0026nobodyさん
垢版 |
03/11/27 13:01ID:???
GOFならぐぐればいくらでもでてくる
0027nobodyさん
垢版 |
03/11/27 13:58ID:???
Web Service なシステムを作る上でのデザインパターンなら考えられるかも
ConcreteStrategy を一個の CGI として実装して… うーいまいちメリットないな
0028nobodyさん
垢版 |
03/11/27 14:15ID:???
フォームデータ処理
if
 obj=new Hoge(query);
else if
 obj=new Piyo(query);
else if
 obj=new Foo(query);
else if
 obj=new Bar(query);
・・・・

obj.proc

>>6とあんま変わらんな
0029nobodyさん
垢版 |
03/11/27 16:50ID:???
MVCさいこー。
いや、本気で。
0030nobodyさん
垢版 |
03/11/27 17:03ID:???
テンプレート使えばモデルとビューは分離できるな
0031nobodyさん
垢版 |
03/11/27 22:02ID:0zBWj9/p
>>25
オブジェクト指向にクラスが必須ではないのと同じくらい、
デザインパターンにオブジェクト指向が必須という訳ではないと思う。(私見)
オブジェクト指向以外でも応用することが出来ます。

>>28
>>22 の方法、伝わらなかったかな。サンプルこんな感じです。
use CGI;
my $query = new CGI;
my $app = new App(
func1 => \$func1,
func2 => \&func2,
func3 => \&func3
);
$app->exec($query->param('mode'), $query);
sub func1 { my ($query) = @_; print "func1\n"; }
sub func2 { my ($query) = @_; print "func2\n"; }
sub func3 { my ($query) = @_; print "func3\n"; }

package App;
sub new {
my ($class, %menu) = @_;
bless({menu => \%menu}, $class);
}
sub exec {
my ($self, $key, @args) = @_;
if (ref $self->{menu}->{$ket} eq 'CODE') {
&{$self->{menu}->{$key}}(@args);
}
}
0032nobodyさん
垢版 |
03/11/27 22:15ID:0zBWj9/p
>> 23
アプリケーションサーバや、フレームワーク内でなら使われてる例は多いよね。GOFに限らず。

うーん、OOP/GOF な話題がメインなのかな、ここ?
WEBパターンとかの話題はスレor板違い?
http://www.c2.com/cgi/wiki?WebsitePatterns
0033nobodyさん
垢版 |
03/11/27 22:29ID:???
>>31
非オブジェクト指向言語でオブジェクト指向ごっこしたら大体は破綻するけどね。

言語もパターンも使いよう。
あんたの実力はソースコードレビューではなく客先試験で発揮して下さいよって感じになりかねない。
0034nobodyさん
垢版 |
03/11/27 23:54ID:???
25です。
>>31
ますます分からなくなりました。
これって特殊な例じゃない?
0035nobodyさん
垢版 |
03/11/28 00:49ID:???
>>34
だからぐぐれよ
解説サイトいくらでもあるだろ
それか本かって読め
0036nobodyさん
垢版 |
03/11/28 02:36ID:???
>>34
だからぐぐれよ
解説サイトいくらでもあるだろ
それか本かって読め      だってよ。(w
0037nobodyさん
垢版 |
03/11/28 06:43ID:???
>>34
だからぐぐれよ
解説サイトいくらでもあるだろ
それか本かって読め      だってよ。(w      だってよ。(w
0038nobodyさん
垢版 |
03/11/28 07:55ID:???
PEARのソースコードは
デザパの勉強なるよ
0040nobodyさん
垢版 |
03/11/28 10:57ID:???
いまだに(wとか使う奴いるんだな・・・
レスを投稿する


ニューススポーツなんでも実況