DSC04414

全米7都市をツアーするという壮大なPHPのカンファレンス、CodeWorks 2009に参加してきました。
今日は一日目ということでチュートリアル系のセッションが3トラック、6セッションで開催されました。
後回しにすると書けなくなってしまいそうなので、メモなどを元にトピック毎にレポートします。

会場とアクセス

会場はニューヨークのブルックリンにあるmarriottというホテルです。
なかなか綺麗でよい会場(一泊400ドルするが、ニューヨークではまぁ中の上いかないくらいだと思う)なのですが、遅刻しました。
知ってはいたのですが、けっこうニューヨークの地下鉄は土日は運行形態が変わったりするのと、グーグルで検索したルートと時間がこれらの土日運行をあまり考慮していないっぽい。
ということで明日はもう少し早く行こうと思います。
会場につくとphp|architectのスタッフの方がカウンターにいたので名前を言って名札とパンフレットをもらって好きな会場に入ります。

DSC04401

Quality Assurance in PHP Projects

DSC04404

泣く子も笑うPHPUnitの作者である Sebastian Bergmanさんによる講演。
QAというタイトルですが、ユニットテストや継続的ビルド、コード解析などの話を順を追ってしていくというスタイルのセッションです。
さすがに作者だけあってPHPUnitの機能の説明はわかりやすく、「一か月前に実装した機能」とか「先週書いた」なんていうホットな機能がバンバン飛び出して目から鱗です。
特にPHPUnitのテストケースのメソッドにアノテーションをつけることで利用できる機能群は使っていなかったのですが、めちゃくちゃ便利そうでした。(テストケース同士の依存関係とかが定義できる!)

DSC04406

phpUnderControlは使うようになったのですが、コード解析の肝や効率的なテストケースの書き方はまだまだだと思うので勉強します。

ランチ

DSC04416

今回はボックスランチというまぁ、この手カンファレンスでよくある形式のお弁当でした。
中身はサンドイッチ(牛・鳥・ベジタリアン)のどれかにパスタ、フルーツ、クッキー、チョコレートといったものが詰め合わせになっていました。
同じようなものを町で買ったら15ドルくらいになるかなーという感じです。

DSC04417

ロビー内にテーブルがあって空いている処に座って食べ、同席した人となんとなく話すという感じです。同席した方は3名いて、だいぶ年齢が高かった人とポーランドの方がいました!
良く見ると緊張して手が震えてる人とか(僕も)いましたが、話しはじめるとあっという間に時間が過ぎてしまいますね。どのテーブルもにぎわっていました。
話題は仕事とか、セッションの感想とか、twitterの話とかが無難だと思います。日本のカンファレンスだと知り合い同士と話してしまう風になりがちな気がするのですが、このごった煮感はいいなーと思います。

PHP Code Review

DSC04421

こちらも引き続きSebastian Bergmanとさらにphp.ccのメンバーが加わってオープンソースのプロダクトを辛口でコードレビューするセッションです。
3時間あるうちの2時間はCakePHPが対象になりました。(会場内で使ったことがある人が一番多かったので)
みなさんコンサルタントということで、あるべき設計やコメント、命名などに着目してみていったのですが、PHP4互換の為のコードがかなり可読性を落としているというのが見解でした。
またCakePHPはユーザーが書くコードのスタイルを重視していて開発しているのか、コアライブラリの中(セッションとか)にハードコーディングされているものなどが残っているのも指摘に挙がっていました。

ただ全体的な印象としては小さめにできていて、クラスやメソッドのサイズもほぼ適切になっていてよい印象だったようです。

DSC04422

さらに会場に来ているヒトで何かレビューしたいコードがあれば入れてくれということでUSBメモリが回されたのでcandycaneのコードを提出したところ、セッションの最後のネタとしてcandycaneを40分ほどレビューしてもらいました!

レビューの対象は ヘルパーの中の翻訳をvsprintfするメソッドやhtml_titleの部分が対象だったのですがけっこう議論が白熱して見ていてハラハラしました。
だいぶ直された(タブがそろってないとか!)わけですが、引数をget_func_argsなどで柔軟に実装したコードなどは「いいテクニック」としておほめにあずかりました。

まとめ

今日は参加者は全体で40名くらいかなと思いますが、1コマ3時間のセッションもあっという間に過ぎてしまう濃い内容で面白かったです。
またイベントの運営の仕方が日本とはだいぶ違うので、ランチの取り方などのいいアイデアはCakeMatsuriなどでも取り入れていきたいと思います。

明日に続く。