天然パーマです。

Catalyst Conference #1 に行ってきました

昨日行われた Catalyst Conference #1 に行ってきました。 ここで言う Catalyst とは Perl の Web Application Framework なんですが、 発表者のうち Yappo さんだけが Cisco のルータスイッチの話をしようとしててびっくりしました。 それはさておき、Talk の内容は以下のようなものでした。

  • id:dann のCatalystとMVC論 (15min)
  • id:ikasam_a によるCatalyst::Controller::Resources (15min)
  • $c <3 C (charsbar) (15min)
  • コピペをしないための10の方法 (typester) (5min)
  • Model::Adaptor的な話 (@hidek) (5min)
  • yappo 2924あたりでも持ってきます (5min)
  • Catalyst☆Complex tokuhirom (5min)

皆さん Catalyst Conference の癖に Catalyst を DIS りつつ、それを解決するためのそれぞれの方法や考え方を提案というパターンが主で、非常に面白かったです。 特に id:dann さんと id:ikasam_a さんはブログで Catalyst のネタを結構書いているのですが、今回実際にリアルの場での発表で、それぞれの考えを知ることができてよかったです。id:ikasam_a さんの Catalyst::Controller::Resources 、今まで触ったことがなかったのですが、発表聞くとかなりよさげなので使ってみたいと思います。

Catalyst Conference

自分が Catalyst を使うケースって、仕事の受託開発ではほとんどなくて、pulpsite.net などで公開している yusukebe products が主です。 よって、全くの個人で開発していることと、サービスが小規模であるという点で、今回発表された方々とは多少違ったコンテキストで Catalyst を使っているのかなぁと感じました。 それを踏まえていい機会なので、Catalyst を今まで触ってきて、多少工夫しているところ、思っていることを(ほんの少し&よく知られているものですが)挙げてみました。

Controller にロジックを書くのはよくない
少量のメソッドだったら MyApp.pm ?
モジュール化できるものはモジュール化(POPO)させる+ Model::Adaptor
例: Web API / fetch して parse する / WebService::Simple
Logic を扱う名前空間を作ってそこに置く
→再利用性、テストがやりやすい
script/myapp_create.pl model ...
自前で DBIx::Class::Schema::Loader::make_schema_atを呼び出すスクリプトを作った方がいい
運用の時、アクセスの多い静的ファイルを Catalyst でサーブするのはマジ無い
mod_perl で処理する必要の無い静的コンテンツは mod_perl で扱わない
Config の YAML を環境によって書き換えてる
myapp_local.ymlを使う、最近はじめて知った
CLI から model というか DBIC を呼ぶ時にどうするか
CLI スクリプトに Catalyst の myapp.yml で定義した情報をコピペしがち、DRYじゃない><
ベストな解決策はなんだろう

昔のコードとか今見返すととりあえず動けばいいや的にテラひどいコードになってるんですが(今もひどいが)、 最近になって再利用性とか URI の設計とか気にしだしました。 今回の発表内容や皆さんのブログの記事などで、もっと勉強していきたいと思います。

あーあと、補足として感じたことは、今回来れなかった人を含めどのくらいの人がどのように Catalyst を使っているのかもっと知りたいと思いました(ルータスイッチも含めるとYappoさんは自宅で Catalyst を使っているということで興味深い)。

第2回もあるかもしれないということで、とりあえず 発表者の皆さん、お疲れさまでした!&会場を提供してくれたサイボウズラボに感謝!