root/docs/yappo/20080422-catalystcon1/catalystcon.pl

Revision 10159, 3.7 kB (checked in by yappo, 9 months ago)

はいはいはいはい、アウェイでしたよ

Line 
1use strict;
2use warnings;
3use utf8;
4use lib 'lib';
5
6use Plusen;
7
8my $p = Plusen->bootstrap({
9    config => {
10        meta  => {
11            title => '無題ドキュメント',
12            author => 'Shibuya.trac - Yappo',
13            email => 'yappo <at> shibuya <döt> pl',
14        },
15        plugins => [
16            { module => 'ScriptLoader::Simple' },
17#            { module => 'Device::MozRepl', },
18            { module => 'Device::Term', },
19            {   
20                module => 'Device::Partty',
21                config => {
22                    session_name      => 'CatalystCon',
23                    message           => 'yappo',
24                    writable_password => 'writable_password',
25                    readonly_password => '',
26                },
27            },
28#            { module => 'Device::Growl', },
29            { module => 'Device::ControlFromFile', config => { path => '/tmp/devsumi-ctl.txt' } },
30        ],
31    },
32});
33
34
35__DATA__
36
37===
38title:  one more thing...
39
40===
41title: Catalystアプリで書くのが大げさな
42
43===
44title: HTTP Server付きソフト
45
46===
47title: 例えば
48
49===
50title: mobirc
51
52===
53title: Moxy
54
55===
56title: Plagger Server
57
58===
59title: とかそういうのを書く時に
60
61===
62title: HTTPd をどうしてますか?
63
64===
65title: HTTP::Server::Simple ?
66
67===
68title: Net::Server::PreFork ?
69
70===
71title: brad ?
72
73===
74title: POE ?
75
76===
77title: それをコピペして使い回す?
78
79===
80title: NO! NO! NO! DONT!
81
82===
83title: HTTP::Server::Wrapper を使おう
84
85===
86title: HTTP::Server::Wrapper とは
87list:
88  - Catalyst::Engine ベース
89  - 正確には Soozy::Engine だけど
90  - C::E の HTTP 処理部分だけを切り離して
91  - 他のアプリから使い回せる
92
93===
94title: 使い方超簡単
95
96===
97title: TTP::Server::Wrapper->new('config.yaml', handle_request => sub {my $e = shift; $e->env('DUMY'); $e->res->body(Dumper($e)) } )->run;
98
99===
100title: これだけで動く
101
102===
103title: なんで Catalyst でやらないの?
104
105===
106title: そもそも Catalyst::Engine はおかしい
107
108===
109title: Engine というぐらいなんだから HTTP のハンドリングは全部そっちでやってくれ
110
111===
112title: リクエスト処理やレスポンス処理の拡張は Catalyst::Plugin じゃなくて Engine でやるのが自然じゃないかと思う
113
114===
115title: Catalyst::Plugin なんか誰も使ってないとかで有名だけど
116
117===
118title: Catalyst::Engine って拡張する方法って code ref 突っ込むか use base するしかないしー
119
120===
121title: だから
122
123===
124title: HTTP::Server::Wrapper を使おう
125
126===
127title: Class::Component によるプラグイン機構により簡単に拡張出来る
128
129===
130title: しかも Component::Plaggerize により Plagger っぽい config と logging !
131
132===
133title: 例えば HTTP::MobileAttibute を request につけるのは
134
135===
136title: sub mobileattribute : RequestMethod { HTTP::MobileAttribute->new($_[1]->req) }
137
138===
139title: これで
140
141===
142title: $self->req->mobileattribute ができる
143
144===
145title: HTTP::Server::Wrapper を使って WAF を作ると
146
147===
148title: WAF の開発者は WAF 本業の Controller や Dispatcher の実装のみに専念出来る
149
150===
151title: session やら auth などは HTTP::Server::Wrapper にお任せ
152
153===
154title: 今までは WAF 毎にバラバラに存在していたプラグインが統一されるので色々楽じゃね
155
156===
157title: Catalyst, Jifty, Sledge が、 HTW に対応するのも簡単なはずです
158
159===
160title: あとは
161
162===
163title: Catalyst なんか Engine 部分しか使ってないよって人にもおすすめ
164
165===
166title: どうぞご利用下さい
167
168===
169title: 一部構想だけの話も含まれていて、いまcommitしたコードとは若干異なります
Note: See TracBrowser for help on using the browser.