CakeFest Berlin 最終日のまとめ

飛行機でまとめを書くタイミングになってしまったので少し間が空きました。
色々な出来事がありすぎてまとめづらいですが、セッションの概要を中心に簡単に。

Keynote: The Future of CakePHP(Nate Abele)
おそらく今回のCakeFestでもっとも盛り上がったセッションでした。直前の告知だったにもかかわらずustreamでも延べ80人以上がリアルタイムで見守っていました。
まずは「CakePHPの嫌いなところを教えてくれ」という切り出しで始まり、モデルの機能(オブジェクト化、複合キー、サブクエリ)やクラス名の競合などなど様々なトピックが。そして「Cake3」がnateから発表されて以降は会場からは度々歓声と拍手が!

  • PHP5.3以降
  • すべてのコードを0からスクラッチ
  • クラス階層をnamespaceで整理
  • パフォーマンスも向上
  • 依存関係は少なく、Cake3をライブラリとして使う事も可能
  • 基本的な使い方や作成するコントローラーなどの仕組みはほとんどそのまま

そしてCake3のコードはすでに公開されています。今後のスケジュールなどについてはまだまだこれからの段階ですが非常に魅力的な内容です。録画された動画もいずれ公開されると思いますが、インターナショナルな盛り上がりを肌で感じることができたセッションでした。

JavaScript for PHP Developers(Felix Geisendorfer)
Debuggle.comのFelixが再びの登場。ProtoTypeやJQueryなどについての利用状況をアンケートしつつ開始。
デモ的な部分の比率が高く、前半部分はJSをコントローラーやアクション毎に自動的に読み込ませるように場合の挙動とその実現方法についての解説になりました。(後で聞いたんですがFelixはかなりJavaScriptが好きなそうです)
後半はそれらのソースをgitを使って管理する作業の流れや概念の説明になりました。
実は最終日のセッション開始前にJoenとGarrettによるgit入門のhomeworkのセッションがあり、gitが話題に上るのは3回目になります。

うーんやはり時代はgitだなぁと思わされました。

ランチ
この日はコアチームのJoelと同じテーブルでのランチになりました。ざっくばらんにいろいろな話をしましたが、内容もさることながらJoelのイケメンっぷりと柔らかい物腰に感服です。同じテーブルにはオーストリアから来た2人とアメリカ、フランスといった顔ぶれだったのでやはり生活についてや言語についての話題がたくさんでました。


Test & API-driven Behavior Development(Alexander Morland)
ノルウェーから参加したコアデベロッパのalkemanことAlexanderの発表。内容はロジックをあるべき姿にする為の作業フローといった内容です。個人的に業務の内容に非常に近かったので興味深い内容です。

  • ユニットテストはプログラムを分割し、統制する為に必要
  • プログラムを書く前にAPIを検討することに時間をかける
  • 特に使い方に着目する
  • テストは同時に書くか、分担するなどして書く

内容も面白かったですが、alkemanの話し方も面白く「気楽に聞いてください」みたいなトーンでよかったですね。


Internationalizing CakePHP Applications(Mariano Iglesias)
ワークショップでもたびたび講師を務めたMarianoが登場。多言語が当たり前の南米らしい形で国際化についての説明を行いました。
また実は翌日が誕生日!であることを発表し「遠慮せずにプレゼントしてくれ」的なネタで笑いを。
国際化については利用状況にムラがある部分もあると思われるためか、Cakeで用意されている国際化機能を一通り紹介していくような形です。

  • gettextの利用方法
  • poeditなどを利用した翻訳の流れ
  • TranslationBehaviorを利用したDB翻訳の流れ
  • キャッシュを利用する際などの注意

個人的にはthechawやcandycaneなどで国際化を多用しているので再確認のような形でした。またMarianoの発音や話し方が面白く退屈せずに聞くことができました。



Building Custom APIs(Charlie van de Kerkhof)
時間調整の都合があったのかあっという間に終わってしまったセッションです。
内容はREST風に動くWEBAPIのアプリケーションを実装する流れを示すといったものです。ステータスコード的なものやAPIとして稼働させるための実装をAppControllerにどんどんいれていったのが印象的です。
そういった処理をComponentにして再利用するところまで行くかなと思いましたが、そこまでの話はなくまずは動くものが出来るまでの流れといった形です。


High Performance CakePHP(Joel Perras)
ランチでも一緒だったコアデベロッパのjperrasが再登場。ワークショップでは具体的な設定変更などを使用したデモをnateがやっていたので、もうすこし広い視野での戦略についてのセッションでした。
ビールを飲みつつ、途中で質問した人にもビールを進呈するという砕けた雰囲気も特色です。セッション開始前に「Who's next ?」と演台から質問したら誰かがスーパーマリオの物まねで「It's me, Maaaaarioooo」といって爆笑したあたりからおかしくなっていたのかもしれません。

ポイントは下記のとおり

  • LAMPから/G?LA{1,2}M{1,2}P/へ
  • とにかく分析して原因を特定してから対策を打つ
  • キャッシュの戦略
  • キャッシュの種類
  • WebServerについて

デモなどはなく話だけの内容なのでまとめづらいところではありますが、さまざまなツールやソフトウェアに対してのJoelの認識や反応などがうかがえて面白いセッションでした。TokyoTyrantがまたまた普通に出てきましたし、一方でnginxはいいけど英語のドキュメントが無くて大変だねーという話に会場が同意していました。
逆にいうとTokyoTyrantは十分な情報があるんでしょうか?


クロージング
4日間に及んだイベントの締めくくりとしてスポンサーや功労者への感謝、そして今回のイベントのロゴが入ったTシャツプレゼントの抽選会。
抽選はGarrettがその場で作った抽選アプリに全員がエントリーし、コマンドラインタスクから抽選するという簡単なのか手が込んでいるのかよくわからない方法で決定。そのあたりもひっくるめて盛り上がりました。


懇親会
最終日という事もあり、近隣諸国の方々はその日の飛行機で帰国してしまいました。人数は少し少ないですがコアチームも交えて時にまじめに語らい、時に大はしゃぎしながら宴は続いたのでした。。。。