PHPカンファレンス2011に行ってきた.

概要

本日、PHPカンファレンス2011に行ってきたので、
初めてのカンファレンス参戦という記念の意味を込めて、聞いたセッションについて整理してみた。







聞いたセッション

  • 『基調講演』(遅刻したので15分くらい) 廣川 類
  • PHPライブラリの歩き方・作り方』(30分) sasezaki
  • PHPをハックしてオレオレ文法を追加する』(20分) anatoo
  • PHP doesn't suck!』(30分) chobie
  • アジャイル開発とTDDを半年間実践してみた顛末と、これから』(30分) 澤田 径
  • PHPとテストとCIと私〜愛するあなたのため〜』(30分) yamashiro
  • PHP+MongoDBで作ったメディアプラットフォーム』(30分) 窪田 博昭
  • CakePHP x MongoDB』(30分) cakephper
  • 『徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011』(40分) 徳丸 浩

『基調講演』 廣川 類さん

最後の方しか聞けなかったため、内容を把握できなかったが、後から聞いた話ではPHPはとても素晴らしいという話をしていたらしい。
PHPコード品質は他の言語と比べて比較的高いとか、PHPの歴史とかのお話だった。


PHPライブラリの歩き方・作り方』 sasezakiさん

PHPライブラリの話。今までの問題点を考慮したうえで、より良いライブラリの作り方、具体的に。発表はとても面白かったが、私の戦闘力が低すぎて、正直理解しきれなかった。もう少し修行を積んでから資料を見直してみたい。


他の言語に比べ、PHPのライブラリの数の少なさは驚いた.
PHP 570(pear), 272(pecl)
Perl 23,302(CPAN)
Ruby 27,881(RubyGems)
Python 16,479(PyPI)
知らなかった言葉など
PSR-0
PSR-0 Final Proposal
Pyrus
What is a "Pyrus"?
SPL
SPL入門

PHPをハックしてオレオレ文法を追加する』 アシアルの人 [twitter:@anatoo] id:anatoo

内容はタイトルからわかるとおりPHPにオリジナルの構文規則を追加したりする仕方についての話.

  1. 字句解析
  2. 構文解析
  3. ZendEngine用コードへのコンパイル
  4. ZendEngineによる実行

によって、PHPは実行されているメカニズムから、実際にどこのファイルが何をしているので、ここに新しい定義をして、みたいな流れで大変わかりやすく、意外と簡単にできることがわかりよかった。
最後の質問で、「実務では、標準化的な話で独自のPHPにしちゃったら、使えないのではないか?」的な質問があり、id:anatooさんは、仕事で使えないから、やらないとかそういうことじゃなくて、純粋に楽しいからやっているみたいなことをおっしゃっていたのが、印象的だった。スピーカーの人達の共通点として思ったのが、仕事と趣味のボーダーがなさそうな点があった気がする。


PHP doesn't suck!』 [twitter:@chobi_e] id:chobi_e

PHPのextensionを開発するのに苦労したことなど、作ったextension、extensionを作るメリット、extensionをこれから作る人にむけてのメッセージやid:chobi_eさんが作っているドキュメントなどの紹介などを話してもらった。
extensionを作るために会社を辞め一か月間のニート生活を送ってずっとプログラミングをしてたっていう姿勢に驚かされた。


アジャイル開発とTDDを半年間実践してみた顛末と、これから』 NIJIBOXの人 [twitter:@remore]

アジャイルアジャイルと普段からよく聞いてたが、個人的にはWEB業界に適してる新しい開発スタイル?というフワフワしたイメージしか持っていなかったので、具体的なテストの仕方、PHPUnitでのデモなど、アジャイルがいかに素晴らしいか、具体的にNIJIBOXの中で導入してどうだったかということが聞けてとてもよかった。
以下の本を読むことをお勧めされたので、この機会に是非読みたい。買っちゃおう!

IN=4274068560">アジャイルサムライ−達人開発者への道−

PHPとテストとCIと私〜愛するあなたのため〜』 ドワンゴの人 id:Yamashiro0217

生存戦略〜!!などと、本気で何度も発言して、ぶっ飛んだ大変ユニークな人だった。
内容としては、[twitter:@remore]さんの話をよりPHPでのテストの仕方などに特化した内容で、普段使用しているお勧めのCI(継続的インテグレーション)ツールJenkinsの紹介など、ソフトウェア開発においてかかせない3本柱「バージョン管理」・「テスティング」・「自動化」に沿って面白おかしく話してくれた。最後の宮本武蔵
は日本で最初のアジャイラーという落ちは秀逸だった。

PHP+MongoDBで作ったメディアプラットフォーム』 楽天アーキテクチャを担当しているらしい 久保田さん

ビッグサイト楽天をどういうふうにスケールしていくのかをシステムの構成図を使いながら、説明してもらった。最終的にアルバトロスという高速なWEBフレームワークを作っ話とアルバトロスの管理画面などをデモで見せてもらえた。
内容がいっぱいで、メモをとるのに、必死だったが、普段大規模なサービスを運用していないと話させないことを聞けたのでよかった。発表資料の公開はしなさそう。

アルバトロスに使われている技術

CakePHP x MongoDB』[twitter:@cakephper] id:cakepahper Yasushi Ichikawa

CakeFest2011に行ってきた話〜CakePHPでのMongoDBの使い方、具体的なupdate,参照の仕方,MongoDBのサポートしている演算などについて講義してもらった感じ。
MongoDBを使ったことがないが、このセッションを聞いて、なんか簡単に扱えそうだし、データ形式も柔軟に決められるみたいなので、実際に使ってみたくなった。

『徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011』 [twitter:@ockeghem]

  • 【鉄則10】安全なPHP入門書で学習する
  • 【鉄則9】入力-処理-出力で適切な処理を行うこと
  • 【鉄則8】安全なSQLライブラリを選定して正しく使う
  • 【鉄則7】XSS対策の第一歩はhtmlspecialcharsを正しく使う
  • 【鉄則6】ファイルアップロードは罠がいっぱい
  • 【鉄則5】今時文字コードのセキュリティ気にしなくていいのは小学生までだよね
  • 【鉄則4】2010年代のWebサイトはクリックジャッキング対策しよう
  • 【鉄則3】パスワードの保存はhash(pass . salt)の繰り返し(Stretching)
  • 【鉄則2】PHPのバージョンアップにとことん付き合う信念
  • 【鉄則1】徳丸本を買ってよく読め

あの有名な徳丸本の著者である徳丸さんが、上記の鉄則に沿って、10~1まで順に例をあげて講義していただいた感じ。まだ、徳丸本は序盤しか読めていないため全体的に勉強になったが、特に鉄則4の所で実際にデモをして紹介してもらった"クリックジャッキング"という攻撃方法は、WEBアプリケーションを作っている身として知れてよかった。要は『鉄則1』。

徳丸本にサインしてもらった


個人的にはこれは今回の最大の収穫かもしれない。このサインを励みにいち早く読破したいですね。徳丸さんありがとうございました。


まとめ・感想

初めて、プログラミング言語のカンファレンスに行ってみたが、とても普段聞けないようなコアな話が聞けて大変面白かった。
優秀なエンジニア・専門家の方についての情報が知れたので、行ってよかった。徳丸さんにサインも頂けたし。今日は良き一日だった。
でも、一日に取得した情報量が多すぎて、整理するのがとても大変だったの事実。以後、資料やUstreamを見直すなどして、わからなかったことを理解したい。

PS.このエントリーを書いたおかげで、DevQuiz:スライドパズルの実装が終わらなそう。今から必死こいてGDD2011に参加できるように頑張ります!