Plack::Request::WithEncodingがなぜ便利なのか
Plack::Request::WithEncoding というモジュールをリリースしました
上記の記事にも書いているのですが、Plack::Request::WithEncodigが便利なのは、単に車輪の再発明がされまくっているのが無駄感あるってのもあるんですけど、
個人的には$env->{'plack.request.withencoding.*'}
に共通の格納位置を獲得したってのが大きいと思ってます。
例えば、リクエストの文字コード判別ってのは結構だるいのですが、アプリケーションの前段のPlack::Middlewareで、リクエストのエンコーディングの判別をして
$env->{'plack.request.withencoding.encoding'}
に格納しておくみたいなことをすることにより、よしなに文字列をdecodeしたりすることが出来るようになります。
まーそんなことを考えずとも、Perlでフレームワークを使わずにちょっとしたWebアプリケーションを作る際にだいぶお役立ちなモジュールであります。生でPlack::Requestを使うのはあまり推奨されていないので。
モジュール名やインターフェース、$env
の中のキーの位置等はYAPC翌日のハッカソンで話し合われて、@moznion が実装してくれました。$env->{'plack.request.withencoding.*'}
のキー決めなどは、Plack開発者であるmiyagawaさんやtokuhiromがいたからこそ決められたとも言えるので、一人では作れない協調性を持ったオープンソースソフトウェア開発の醍醐味を見た感じがしました。