YAPC::Asia 2009で、村瀬さん(typesterさん)のトーク「ark - framework inspired by Catalyst」を拝聴しました。スライドはstfuawsc.comにあります。
目下のところ"Amikeco"ではArkのお世話になって実際に実装していますし、このサイトでも(最近少々更新を滞らせていますが)サンプルアプリケーションの作成を通じて紹介していたりします。
Arkはとても合理的なWAFなので、是非一度お使いになることをお勧めしたいです。Catalyst的に使えますし、前のhide-kさんもトークで槍玉に挙げたようなCatalystの微妙な一部記述もしなくて済みます。CatalystはPerlのWAFの定番で大変良くできたものですが、このトークでArkユーザーの方も増えてくれれば嬉しいですね。
そんなこんなで熱く注目している私ですが、さりとて毎回の変更を事細かく拝見出来ているわけでないので、恥ずかしながら、軽い浦島太郎状態に陥ってしまいました。一番驚いたのは先月末から今月頭にかけて、KAYAC社の実アプリのリソース一式がGitHubで公開されていたことです。
ということで、いくつか感想を挙げてみます。
- PSGI/Plackでも安心
Ark::Modelsの使い方を悔い改めますHTML::ShakanからArk::Formに切り替えるかもArk::View::JSONは既にありました- 全体を通して
1. PSGI/Plackでも安心
Arkは「WAFを作るためのフレームワーク」HTTP::Engineを土台としています。このHTTP::Engineが再整理される(仕様・API・対応インターフェースの実装を分解整理する)というここ数日の潮目もあって、わずかな不安を抱いていました。
しかし、それは完全な杞憂でした。私のような人間が心配すること自体が失礼とも言えますが、ともかくPlackサポートブランチが既に出来ていたりするので、将来的にもPSGIの流れに乗れそうで安心しました。
PSGIやそのリファレンス実装であるPlackについては、別の記事で採り上げたいと思います。
2. Ark::Modelsの使い方を悔い改めます
Ark::Modelsの使い方を思い切り誤っていたので、悔い改めます。当時の記述は、Ark::Modelsがgitリポジトリに最初に登場した2日後に書いた物なので、
- そもそも使い方について私がよく分かっていなかった
- その後のモジュールの成長の事は当然書いていない
という事情があります。
などという情けない言い訳は措いておきますと、無意味にArk::Modelsをラッピングしたことが私のそもそもの間違いでした。素直にObject::Containerのように使えば良かったんですね。
PODも充実してきたので、t/*と合わせてじっくり読みたいと思います。
3. HTML::ShakanからArk::Formに切り替えるかも
続いて、フォームジェネレーター&バリデーターです。Ark::Formの存在自体は知っていたのですが、その具体的な内容をご紹介いただき、目から鱗が落ちる思いでした。
HTML::Shakanがベースとなっている(ことも、恥ずかしながら始めて知りました)Ark::Formでは、フォームの継承という(私にとっての)目玉もあり、まさに現在進行形で「痒いところ」と思いつつも手動でラッピングしていたような内容がことごとくサポートされています。
色々な部品まで(それを提供してくれる)WAFに依存し過ぎるのはリスクがあると思っていて、HTML::Shakanを使っていたのですが、これは今すぐに手を止めてArk::Formをじっくり読みつつ、手を動かすならまずはArk::Formを使って評価をしなければならない、と思いました。
4. Ark::View::JSONは既にありました
ありました。2009/08/06に既にコミットされていました。
つまり、私がArk::View::JSONの存在を知らずに大恥をかいていたことも分かりました。私の記事は車輪の超劣化再発明の生きた実例として、生暖かく見守っていただけます。
5. 全体を通して
ArkはCatalystに着想を得て、かなりの部分でCatalystのノウハウを流用出来たりします。しかし私はCatalystに精通していないこともあって、「これを実現したい」と考えたら「Catalystではどうだろうか」と調べる行動ではなく「取り敢えず基本的なコードのコンセプトを書いてみる」という無駄なことをしてしまっているのです。そんなこんなで、木曜は帰ってから一人反省会といった感じで内省しつつコードをゴニョゴニョ触っていたり。
そのほかにも、Action Roleがいつの間にかサポートされていたりと、ちょっと私が怠けているとあっという間に機能や品質が跳ね上がっています。最初に「軽い浦島太郎状態」と書きましたが、ここまで書き連ねてきて、実は相当重症だったということに思い至った次第です。
このような精力的な開発が現在進行形で進んでいるArkは、本当に目の離せないWAFだと改めて思い知らされました。もっと必死に食らいついていきたいです。
コメントする