YAPC::Asia Tokyo 2009 スペシャルレポート

1日目レポート[随時更新]

この記事を読むのに必要な時間:およそ 7 分

Tadashi Matsudaさん「高速なテンプレートエンジン"MobaSiF::Template"」

株式会社ディー・エヌ・エーの松田唯史さんによる,高速なテンプレートエンジンMobaSiF::Templateについての発表です。

MobaSiFというのは,携帯向けのシンプルなオープンソースのフレームワークです。MobaSiF::Templateはその中のMTemplateをベースとしています。既にCPANで公開中です。

MobaSiF::Templateはとてもシンプルで,基本機能として分岐とループと修飾子があります。機能が少ない分非常に高速です。 その理由は,binary templateとXSを使っているからです。binary templateでは先程の分岐,ループ,そして表示などの各処理を全てバイナリで表現しています。

とにかく速いので,この機能で事足りる場合には是非検討してくださいとのことでした。ソースコードはgithubでも公開中です。

Daisuke Komatsuさん「プラコアではCatalystをこう使っています。」

株式会社Plugin and Core(通称:プラコア) の小松大輔さんの発表です。最初に事例として,イラスト素材.comとマンガ市場DLの紹介があり,その後,Catalysの構成について説明がありました。

ユニークだと思ったのはServiceクラスを独自に作って,ビジネスロジックについては,全てこのServiceクラス中に記述しているということでした。Serviceクラスでは,Proj::Classをuseすると自動的にMoose→utf8 になるようにしているとのことです。また単体テストは,このServiceクラスを対象にしています。

他のモジュールとしては,Catalyst::Model::MultiAdaptor,FormValidator::LazyWay,それからPseudoRequestを利用しているということでした。

Hideo Kimuraさん「modern Catalyst」

Kimuraさんのセッションで語られたのは,PerlのWEBアプリケーションフレームワークであるCatalystの,最新情報についてです。Perlで最も主流のWEBフレームワークの解説というだけあり,非常に多くの聴講者が熱心に耳を傾けていました。

まず,CatalystがMooseへの対応を行っていることに関して触れられ,その後よくある問題であるPluginに関する注意であったり,ヘルパメソッドやRoleを使った拡張方法,さらには最近話にあがることが多いCatalyst::Controller::ActionRoleに関する解説がありました。

また,ディスパッチャーに関して,今後利用されなくなるであろうdefault :Privateやindex :Privateなどに関する基本的な情報や,$c->goや$c->visitのような知っていると便利なTipsが紹介されていました。

さらに,Catalystを使う上での重要なドキュメントとして,Catalyst::Manual::ExtendingCatalyst,Catalyst::Manual::CatalystAndMoose,そして洋書であるDefinitive Guide to Catalystなどを紹介。最終的には午前中のセッションにもあったPSGIについても触れ,Catalystの情報のキャッチアップに大変役立つ20分間でした。

画像

画像

Tatsuhiko Miyagawaさん「Event programming fun with AnyEvent and Coro」

Miyagawaさんのセッションは,イベントプログラミングを簡単に記述できると言うAnyEventの紹介です。Miyagawaさんが,他人のモジュールのセッションを行うのは久しぶりとのことでした。さらに,AnyEventの作者は素晴らしいコードを書く方だとおっしゃっていて,MiyagawaさんのAnyEventに対する評価の高さが伺えました。

まず最初に触れられたのが,POEとの比較です。POE::Componentが250ものモジュール数を持つのに対し,AnyEventのモジュール数は35程度。一見すると,POE::Componentの方が充実しており,いい状態のように見えますが,Miyagawaさんによると,POE::Componentのモジュールが多いのは再利用性が低いためであり,決していいこととはいえないのだということでした。

その後,話はAnyEventの実際の使い方に関するものへ移りました。TimerやI/Oなど基本的な事項の解説があり,その後例としてMiyagawaさんが作成したというAnyEvent::Twitter::StreamやAnyEvent::ReversHTTPといったモジュールが,実例として紹介されていました。

他,ラッチ処理を実現するcondvarのbegin,endであったり,AnyEventのイディオムである「my $w; $w = ...」の解説などがあり,さらにショートカットとして便利なAE::*にも触れられていました。最後に結論として,POE::Componentのコードを量産するのはもうやめにし,今後はAnyEventを利用しようと,参加者全員に呼びかけていました。

画像

画像

著者プロフィール

杉山誠(すぎやままこと)

企業やプロジェクト間を渡り歩いて仕事をしているフリーランス・プログラマー。昨年福岡へ移住したのをきっかけにFukuoka Perl Mongersを立ち上げる。デジタルハリウッド福岡校講師。山口県山口市出身。

blog:http://sugmak.com/
twitter:sugmak


本間雅洋(ほんままさひろ)

北海道苫小牧市出身のプログラマー。好きな言語はPerlやPython,Java,Objective-C,Haskellなど。在学中には数学を専攻しており,今も数学好き。現在はオンライン不動産株式会社にて自社サイトの開発に従事している。

共著書に「FFmpegで作る動画共有サイト」(毎日コミュニケーションズ)がある。

blog:http://d.hatena.ne.jp/hiratara/