PHP Matsuri 2011 レポート

PHP Matsuri 2011 セッション・ワークショップレポート

10月15、16日の2日間にわたり、大阪市港区のホテルコスモスクエア国際交流センターにおいて、PHP Matsuri 2011 in Osakaが開催されました。2回に渡り、本イベントをレポートしていきます。まずは1日目に行われたセッション・ワークショップを中心に、イベントの模様をレポートします。

PHP Matsuri 2011

PHP Matsuriは、年に一度1泊2日で行われるPHPエンジニアの祭典です。昨年は東京で開催され、約70名のエンジニアが参加し熱い2日間を過ごしました。

第2回開催である今年は、PHPを中心にWEB系エンジニア約90名が参加し、24時間オープンしているイベント会場でゲストによるセッション、ワークショップなどが行われました。メインのイベントとなるハッカソンは夜通し行われ、2日目に開催されたLT大会では、41名もの方がハッカソンにおける成果を発表するなど、非常にエキサイティングな2日間でした。

暑い夜を共に過ごした仲間達の集合写真
暑い夜を共に過ごした仲間達の集合写真

安藤さん「ハッカソン入門」

PHP青年団長の安藤さん(@yando)より、開会の挨拶も兼ねて「ハッカソン」についての熱いセッションが繰り広げられました。

まず、米Yahoo!が主催したYahoo Open Hack Dayというイベントを例に、最新技術のセッションに見向きもせずにケーキを焼いていたチームがいたこと、ひたすらロボットを制作していた参加者がいたことなどを紹介しました。それらの例を通じ、"Hack"とは決してすごいことではなく、何かをしてアウトプットすればそれは"Hack"です、という意見を述べていました。

ハッカソンについての思いを語る安藤さん
ハッカソンについての思いを語る安藤さん

また、"The best way to prepare for life is to begin to live. ⁠生きる準備ばかりして本当に人生を生きていない)"という言葉を取り上げ、とにかく何かをアウトプットすることが重要だということを参加者に伝えていました。

よしおかひろたかさん「ハッカー中心の企業文化を日本に根づかせる」

よしおかひろたかさんによる、ハッカー中心の企業文化の紹介と、それが必要な理由、日本で根付かせるためにはどうすべきかをテーマにしたセッションが行われました。冒頭の挨拶として、3月11日の震災後に行われたHack for Japanという活動や、ハッカーが持つスキルを震災復興に役立てるために行われているハッカソンを紹介されていたのが印象的でした。

PHP Matsuriの基調講演は去年に続き2度目
PHP Matsuriの基調講演は去年に続き2度目

まず、ご自身が大学を卒業してから約10年勤められ、エンジニアリング人生に大きな影響を与えたというDECの文化を例に、ハッカー中心の企業文化とはどういうものかについて紹介しました。

それによるとDECでは、googleの20%ルールのように業務時間の一部を業務外の作業にあてることが推奨されていたり、約30年前としては珍しく、すべての社内コンピュータが1つのネットワークに接続され、あらゆる情報が共有されていたそうです。それらの制度やシステムによって、あらゆる情報や価値観が共有されていった結果、管理より自主性を尊重し、なんでもやってみるといったハッカー中心の企業文化が実現されていたといいます。

次に、ハッカー中心の企業文化が必要な理由についての話に移ります。ここでは、ポールグレアムの「yahooに起きてしまったこと」というエッセイやTalent Trafficというインフォグラフィクスをもとに、ハイテク企業になろうとしなかったyahooに起きた人材流出などの出来事を紹介し、ハッカー中心の企業文化の必要性を説明しました。さらに、ご自身の考える理由として、ハッカー中心文化の方が自分が心地よいから、という前置きをしながらも「共通善」⁠企業の競争力」⁠ベストプラクティス」といった理由を挙げています。

そして、ハッカー中心の企業文化をどう日本に根付かせるかについて、まずはハッカー中心の企業文化の理解を広めること、インフォーマルな勉強会やランチ、飲み会などで暗黙知を継承すること、フォーマルな戦略、ガイドライン、ルールなどで形式知を継承すること、社内コミュニティを作ることを挙げ、特に社内コミュニティを形成する上で勉強会の開催は重要であると指摘しました。

最後に、⁠ハッカー中心の企業文化を日本に根付かせることで、エンジニアとして社会をよりよくしていきたい。それが自分が幸せになる道だと思っている」という言葉で締めくくられました。

増井雄一郎さん「JavascriptでiPhone/Androidアプリを作るTitanium Mobile」

Appcelerator社のプラットフォームエバンジェリストとして日本で活動している増井雄一郎さんによる、Titanium Mobileを紹介するセッションです。

Titanium Mobileとは、iPhone、AndroidをはじめとしてBlackberryやWindows Phoneなど非常に多くの種類があるスマートフォンにおいて、開発言語がバラバラである問題を解決するための、Javascriptでネイティブアプリを書くことができるツールだそうです。

Titanium Mobileで使われるJavascriptは、ブラウザで使うJavascirptとは若干の違いがあるそうですが、Javascriptを普段使っている技術者なら2,3時間のチュートリアルをこなすだけで違和感なく移行できるそうです。

PHP Matsuriでは初となるTitanium Mobileセッション
PHP Matsuriでは初となるTitanium Mobileセッション

開発言語がバラバラである問題を解決する手段としてはHTML5+CSSもありますが、Titanium MobileではHTML5では不可能なネイティブUIの使用や、ストアへのアップロード、GPSやカメラなどスマートフォンのネイティブな機能の使用が可能であるとしています。

このTitanium Mobileは、2011年10月現在で150万人の開発者と25000以上のアプリがマーケットに登録されているそうです。採用事例としては「ココログ」⁠サイボウズlive」などのツール系アプリを挙げた他、かなりのユーザー数を抱えるソーシャルアプリでも採用されているということを紹介しました。

また、Titanium Mobileが苦手とする分野も紹介しました。それによると、常にリアルタイム性を求められるようなシューティングゲームや、データの圧縮や展開などのビット処理を行うアプリ、メモリを大量に使うようなアプリはパフォーマンスや言語仕様などの理由で難しいそうです。

他にも、Titanium Studioというeclipseベースの統合開発環境がリリースされたので開発が容易になったことや、今後GUIによるインターフェースビルダーを正式にリリースする可能性があることなどを紹介しました。

次に、増井さんとAppcelerator社との出会いの話に移ります。増井さんは仕事でiPhoneアプリを開発していましたが、Androidアプリの依頼も増えてきたことなどを理由にTitanium Mobileを使い始めたそうです。その当時のTitanium Mobileは不安定であり、機能としても改善できる点が多くあったということで、あるイベントでAppcelerator社のメンバーに直接改善などを訴えたところ、イベント後もそういったやり取りが続き、一週間ぐらい後に直接フルタイムでのオファーが届いたとのこと。しかしながらビザの関係で一旦帰国しなければならなかったため、現在はプラットフォームエバンジェリストとして日本で活動をしていることがそうです。そのうちに日本でもTitanium Modileが利用されはじめたため、来年には日本法人を立ち上げることになり、増井さんもこのまま日本に留まらなければならないかもしれないということでした。

最後に、海外ではiPhoneアプリエンジニアのコストがかなり高いことや、自社のエンジニアに新しい言語を1から学ばせるコストが割に合わないため、サブスクリプション契約と呼ばれるサポートや開発支援が受け入れられやすいという事情を紹介しました。

質疑応答では、海外の会社の日本法人で働くことや、海外で働くことと日本で働くことの違いなど、増井さんの経験してきたワークスタイルについての質問が多く、参加者の興味を引いていました。

Graham Weldonさん「CakeFest wrap-up, and CakePHP 2.0 Performance」

日本への来日は去年のPHP Matsuriに続き3年目となるGraham Weldonさんより、CakePHP2.0についてのセッションがありました。

Graham Weldonさんは、CakePHPのコアコントリビューターとして4年間活動してる他、RedmineのPHPクローンであるCandyCaneの開発にも参加しているそうです。

3回目の来日となるGrahamさん
3回目の来日となるGrahamさん

まず、先日イギリスのマンチェスターで行われたCakeFestの紹介がありました。このCakeFestは、2日間はワークショップ、次の2日間はカンファレンスの計4日間行われ、100名近くが参加したそうです。PHP Matsuriの参加者の中にも、日本からCakeFestに参加した方が何名か参加されていたのが印象的でした。

次に、本題であるCakePHP2.0の紹介に移りますが、このセッションでは規約類からはじまりエラー処理、国際化、セッション、認証系など、それぞれの機能についての大きな変更点について、書ききれないほど多くの説明がありました。

それによると、CakePHP2.0では従来のソースコードをすべて書き直し、PHP4以前を切り捨てたため、パフォーマンスが向上するとともに多くの新機能が追加されたということです。特にパフォーマンスは、遅延読込を適用していること、命名規則の変更により文字列操作を削減できたこと、リクエスト・レスポンス処理を改善したこと、DBのキャッシュ処理を改善したことなどにより、ベンチマークで10〜15%程度パフォーマンスが向上しています。

また、PHP5.3以降の新機能である無名関数や名前空間などを積極的に取り入れようとする一方、Exceptionを使用してエラー処理を改善したり、コンソールシェルの出力に色付けができるようになるなど、着実に進化している一面も感じ取れました。筆者個人的には、国際化のためのショートカット関数がタイプ数を減らす方向へ変更された点などに好感が持てました。

次に、CakePHP2.0のドキュメントやAPIリファレンスなどを紹介しました。そこにはJenkinsによるCI(継続的インテグレーション)の状況を公開するURLもあり、開発手法の進化も見て取ることができました。

最後に、ドキュメントの日本語化について触れ、有志による翻訳に感謝するとともに、さらなる協力者を募集しているとのことです。

CakePHP2.0のリリースが直前だった(この翌日である10月16日にリリースされた)ためか、CakePHP1.x系からの変更点についての詳細な説明があり、CakePHPユーザーとしては非常に役立つセッションとなったのではないでしょうか。

Fabien Potencierさん「Symfony2, the major features」

Symfonyフレームワークの作者であるFabien Potencierさんより、今年7月にリリースされたSymfony2フレームワークについてのセッションです。

まずはじめに、Symfony2の概要について説明がありました。Symfony2は、より拡張しやすく高速なアーキテクチャを手に入れるために既存のコードをすべて書き直して作り直されたそうです。それによって、PHP5.3の新機能や、Symfony1リリースからの5年間のベストプラクティスを取り込むことが可能になったとしています。

そして、Symfony2は「WEB開発者が持つ多くの問題を解決できる再利用可能なコンポーネントセット」であり、それと同時に「それらのコンポーネントをベースとしたフルスタックフレームワーク」でもあると指摘しました。

来日2回目となるFabienさん
来日2回目となるFabienさん

セッションの前半では、Symfony2を構成するコンポーネントの紹介がありました。Symfony2には21の再利用可能でスタンドアローンなコンポーネントがあるそうです。それらのコンポーネントがそれぞれがgitリポジトリを持ち、個別にインストールして使用することができるといいます。代表的なものとして、yamlファイルを扱うYamlやファイルシステムを扱うFinder、DOM操作を行うCssSelectorなどの機能を紹介しました。

これらのコンポーネントを作る上では、Symfony1での経験を元にしつつも、JavaのWEBフレームワークであるSpringや、PythonのDjango、Ruby on Railsなどのベストプラクティスも参考にしているそうです。

そして、これらのコンポーネントセットを利用することで独自のWEBフレームワークを作成することも可能とし、例としてsilexというマイクロフレームワークを紹介していました。

また、doctrineやPHPUnitなどのプロジェクトでもSymfony2のコンポーネントが使われており、次期phpBB4やDrupal8でも採用される予定だそうです。これらのことからも、紹介されたコンポーネントの機能はWEB開発に際して有用なものが多いことがわかりました。

後半では、フルスタックフレームワークとしてのSymfony2の紹介がありました。Symfony2はMVCモデルでいうV(View)とC(Controller)を担当するフレームワークであり、M(Model)は好きなものが選択できるといいます。また、Symfony2をダウンロードする際に、プロジェクトの性質に応じて何種類かのセットから選択することが可能になったそうです。これはディストリビューションといい、Linuxのディストリビューションとよく似た仕組みだそうです。

さらに、ダウンロードしてソースコードを配置した直後には、Symfonyの設定がWEB GUIで簡単に行えるコンフィグレーションシステムを導入し、初心者でもインストールしやすいものになったとしています。他にも、新しいテンプレートエンジンであるTwigや機能が拡張されたWEBデバッグツールバーなど、WEB開発を支援する機能を紹介しました。

最後に、質疑応答では不足しているドキュメントに関する質問をされ、⁠自分で作って追加するか、チケットを作って!」などと回答し会場を沸かせていました。

Garrett Woodworthさん「High Quality Code with Lithium」

元CakePHPコアデベロッパで、現在はLithiumフレームワークの開発をしているGarrett Woodworthさんによる、クオリティの高いコードに関するセッションです。PHPコミュニティには、時としてクオリティの低いコードが多いという評判があることを危惧してセッションのテーマを決めたそうです。

終始気さくに接してくれたGarrettさん
終始気さくに接してくれたGarrettさん

はじめに、Garrettさんの考えるクオリティの高いコードについての説明がありました。良いコードとは、書いた本人が見返せばすぐに思い出せ、理解しようとした人が問題なく理解できるコードだと思うそうです。また、コードの質を保つには、

  • ドキュメント
  • 基準
  • テスト
  • ツール

の4つが必要であると示しました。しかしドキュメントはコードとともに変化していくので完成が無いため、最後に作りたいものだといいます。また、ドキュメントにはコードが何をしてるかだけでなく、どうやって動いているかを記述することが重要であるといいます。基準については、基準があるから読みやすく共有しやすいコードができるため、コードを書く人それぞれが持つべきであるとしながらも、共同作業をするときは相手の基準を理解することが重要であるといいます。テストについては、質の高いコードを目指す上での最後のステップとし、テストファーストを実践するとコードの質は改善されると話しました。

Lithiumフレームワークではこれらを支援するためのツールを用意しているそうです。このツールとは、

  • コードのコメントブロックからドキュメントを生成するDocument Generator
  • コードの解析を行うCode Analysis
  • テストコードの作成を支援するTest suite
  • CI(継続的インテグレーション)

の4点であり、これらを駆使することによりコードの質を保っているそうです。

セッションの後半では、プロジェクト作成からプログラム実装、テスト実行までの一連の流れや、ドキュメント生成のデモを行いました。最初に簡単なコマンドをいくつか叩いた後は、WEB GUIによる操作でコードの解析やテストの実行が行えるという簡単さには驚いた参加者も多いのではないでしょうか。また、アジャイル開発やテスト駆動開発などで耳にするキーワードが多く出現し、開発手法という側面から見ても非常に興味深いセッションでした。

Garrettさんは、セッション中にどこからか聞こえて来た音楽に合わせた即興ダンスを披露するなど、非常に気さくで面白い方でした。

ニフティ 市角栄康さん、E2 わたなべかずひろさん「ニフティクラウドのAPIの紹介と今後の予定、ユーザーからみたNiftyCloud」

PHP Matsuriのハッカソンのために、無料インスタンスを提供していただいたニフティクラウドの市角さんと、ニフティクラウドのベータ版からのユーザーであるわたなべさんより、ニフティクラウドに関するセッションが行われました。

はじめに、ニフティクラウドというサービスの紹介が行われました。ニフティクラウドとは、Amazon EC2に近い形で提供しているIaaS型のパブリッククラウドコンピューティングサービスです。2010年1月のサービス開始より、900社以上が導入しており、仮想化基盤にはVMWareを使用しているそうです。このサービスでは1ヶ月に1回という早いペースで機能を追加しており、直近ではAmazon S3互換のクラウドストレージサービスやより高速な増設ディスクサービス、障害通知サービスなどが追加されたとのことです。

次に、実際にWEBコントロールパネルを見ながらの操作デモが行われました。このWEBコントロールパネルでは、現在のサービス使用状況を閲覧できるほか、サーバーの追加や削除をはじめとする各種操作も行うことができるそうです。

サーバーの追加デモでは、

  • OS選択
  • サーバー名登録
  • スペック、料金選択
  • 公開鍵選択(または作成)
  • ファイアーウォール設定

の5ステップを実際に操作し、実際に5分程度でサーバーが起動することが確認できました。

最後に、ニフティクラウドAPIの説明が行われました。このAPIは、Amazon EC2互換のREST APIとSOAP APIがあり、JavaとRubyのSDKが用意されているのでプログラムからサーバーを操作することができるそうです。また、非公式ながらわたなべかずひろさんが作成したPHPのSDKもあるため、PHPからの操作も可能とのことでした。APIを使用するメリットとして、プログラムによるインフラの自動制御や複数サーバーの同時起動が可能になることが挙げられました。また、公式のAPIリファレンスが簡単に紹介されましたが、APIリファレンスが日本語で記述されている点も、日本人エンジニアには嬉しいポイントではないかと思います。

次に、わたなべさんによる「ユーザーからみたNiftyCloud」セッションが行われました。それによると、ニフティクラウドを選択したポイントは、

  • ネットワークとCPUが速い
  • 日本語で全て行うことができる
  • WEBコントロールパネルが使いやすい
  • スタッフが親切

の4点であったそうです。そのため、現在では60台近くのサーバーのうち90%をニフティクラウドで運用しているとのことです。

ニフティクラウドを使用していて困ったこととして、初期のマイナートラブルでHDD障害が起きたことなどを挙げていました。しかし、高負荷時にスケールアップすることで対応するなど、クラウドサービスの恩恵も受けているそうです。また、新規追加された高速な増設ディスクサービスのおかげで、DiskIOの負荷に悩まされることが減るなど、頻繁なバージョンアップも魅力とのことでした。

VOYAGE GROUP 高橋洋平さん「今日もまた○○な環境で仕事をはじめるお ~エンジニア理想の職場と私の職場~」

VOYAGE GROUPの高橋洋平さんより、エンジニアの職場環境についてのセッションが行われました。

セッションで話すのは初めてという高橋さん
セッションで話すのは初めてという高橋さん

はじめに、高橋さんの定義する環境についての説明がありました。それによると、場所・人・使う物など全てを引っくるめて環境とするそうです。

次に、エンジニアを取り巻く環境について、以前にTwitterで#engineerenvというハッシュタグを使用して議論された内容を引用し、

  • 職場の全員が良い物を作ろうという価値観で一致している
  • 和室
  • デュアルディスプレイ
  • 誇れる場所(プライド?)
  • ヒト(エンジニア)が一番大事だと理解している職場
  • 非喫煙者の休憩所
  • 有能なエンジニアと一緒に働ける
  • エンジニアを育てる風土

といった意見があったことを紹介しました。それらの意見を集計すると、

  • 良いイスとデュアルディスプレイ
  • ビジョン、情報の共有
  • 権限と責任を与えてくれる
  • コミュニティ(OSSなど)活動支援
  • エンジニアを育てる風土

といった内容が多かったそうです。しかし、それらがすべて揃ってたら本当に働きやすい環境か?という問題提起とともに、VOYAGE GROUPのエンジニアを取り巻く環境が次のようなものになっていることを紹介しました。

  • 配給されるハードウェアはデュアルディスプレイとMacbook ProまたはAir
  • 和室と掘りごたつのスペースがある
  • AJITOという社内バーで、お酒だけでなく、昼食や軽い休憩でもコミュニケーションができる
  • OASISというライブラリ兼集中ルームに常時4,000冊ぐらいの本があり、社内外問わず勉強会会場になっている
  • 社内勉強会が自然発生的に行われる
  • グループ他社であっても垣根無くエンジニア同士が高めっている

最後に、⁠みなさんも自分の環境などをアウトプットしてみてください」という言葉で締めくくられました。

ディノ 高原芳浩さん「PHPer.jpの紹介」

パブリッククラウドコンピューティングサービスであるユニットホスティングを運営する傍ら、PHP向けのPaaSサービスを開発するディノの高原さんより、PHPer.jpというサービスに関するセッションが行われました。

はじめに、PHPer.jpの概要が説明されました。それによると、PHPer.jpとは、速くて耐障害性が高くてスケーラブルなPHP環境を手っ取り早く構築することを目的に構築しているPaaSサービスだそうです。サーバー構成は、Ruby向けPaaSで知られるherokuと同等の仕組みをPHPに適用したものであり、特徴として、仮想専用サーバーとLAMP構成の組み合わせであること、git pushコマンドによりデプロイされること、RESTFul API/CLIが備わっていること、PHP向けサービスながらRuby on railsで作られていることなどが挙げられるそうです。

次にサービス開発の経緯についての説明が行われました。このサービスは個人プロジェクトとして1人で開発を開始され、twitterで公開したところ反響があったためベータサービスを開始したそうです。2011年10月現在、133人のユーザーが84のアプリケーションをデプロイしているそうですが、未だに個人プロジェクトとして開発を継続されているとのことです。

最近の開発の成果としては、PHPMyAdminが使用可能になったとのことです。また今後の課題として、本当の意味で自動的なオートスケール機能を実装することとしています。

PHP Matsuriのハッカソンにおいて、エラーログ、アクセスログをWEB上から閲覧可能にするなど精力的に開発されている印象を受けました。

ワークショップレポート

Titanium道場

セッションにも登壇した増田雄一郎さんによる、Titanium Mobile入門のワークショップが行われました。

増井さんが普段から使用されているハンズオン資料を元に、最終的には全員が簡単なTwitterアプリを作成するまでを実践されたようです。2時間枠では時間が足りず、細かい部分は飛ばす場面もあったようですが、普段PHPを主に使用していると思われる参加者には新鮮な体験であったようで、ワークショップ終了後も参加者が増井さんに質問を投げかける場面が見受けられました。

また、翌日のLT大会においてもTitanium Mobileで構築したアプリを紹介する方もおり、身になるワークショップができたのではないかと思います。

参加者全員を見て回る増井さん
参加者全員を見て回る増井さん

使用したハンズオン資料はgithubにて公開されているものですので、興味がありましたら是非ご覧ください。

Symfony2ワークショップ

Symfony2ワークショップには十数名の方が参加しました。Symfony2を初めて触る方もいたため、全員復習ということで、スタンダードエディションのダウンロードと実行要件チェックスクリプトの実行などから始めました。その後はバンドルの作成、デバッグツールバー等の確認、ルーティングやテンプレートの書き換えを行いました。

次にモデルを作成し、ジェネレーターコマンドにて作成したモデルを操作するCRUD画面を生成し、それらの画面が実際に動作するかの確認を行いました。同時に、ここまでの内容でちょっとしたアプリケーションなら作れそうだという感覚を共有できました。そのほか、バンドル生成時に合わせて生成されるテストコードを実行することなども行いました。

Symfonyユーザー会の後藤さんが講師を務める
Symfonyユーザー会の後藤さんが講師を務める

ワークショップにはSymfony2作者のfabienさんにも同席していたため、ワークショップ参加者が随所でfabienさんに直接質問し回答をもらうという場面もありました。

Lithiumワークショップ

Lithiumワークショップでは、Lithiumフレームワーク開発者であるGarrett Woodworthさんと一緒に簡単なフォトブログを作成し、Garrettさんが勤めるPaaSプラットフォームであるorchestraへのアップロードを行いました。

実際にGarrettさんがアップロードしたサンプルがこちらのURLから確認できます。大変気さくなGarrettさんが進行するこのワークショップは、笑い声や音楽が絶えないとても楽しいものだったと思います。

サンプルコードを披露するGarrettさん
サンプルコードを披露するGarrettさん

CakePHPワークショップ

CakePHPワークショップでは、リリース直前に迫っていたCakePHP2.0を使い、Graham Weldonさんと一緒に簡単なコードスニペットを登録するサイトを作りました。

Grahamさんのセッションで紹介されたばかりの、CakePHP2.0の新しいコンソールシェルを通じてbakeコマンドを使いCRUD画面を生成しました。また、同じく紹介されたばかりの新しいAuthenticationを使用して認証機能を作成するなど、CakePHP2.0での変更点に触れられたのは貴重な体験だったと思います。

途中、Grahamさんがサーバー関連のトラブルに見舞われるなどしましたが、セッションから引き続き充実したワークショップになりました。

サンプルアプリケーションをテストするGrahamさん
サンプルアプリケーションをテストするGrahamさん

テスティングワークショップ

テスティングワークショップでは、PHPでのテストに関して

  • 基礎知識の講義
  • 実際に自分の環境で動かしてみる
  • 少し難しい課題にも取り組んでみる

という3ステップで実施しました。

全体の講師を務める久保さん
全体の講師を務める久保さん

基礎知識の講義では、PHPに限らないソフトウェアのテスト全般について、概要や分類などの基礎知識と、次のステップで使用するテスティングフレームワークについての予習を行いました。また、実作業の準備としてPHPUnit3.5の環境をインストールし、ごく簡単な最初のテストコードを記述してテストを実行しました。

次に、PHPUnitを使ってテストコードを記述しながらFizzBuzz問題を解くコードを作成するハンズオンを行いました。同時に、テストを記述しながらプロダクションコードを成長させていく、テストファーストに近い形も体験することができました。

少し趣向の異なるテスティングフレームワークであるBehatについても、フィーチャやシナリオ、ステップの記述のごく簡単な流れを体験しました。

最後に、PHPUnit組とBehat組に別れ、FizzBuzzよりも複雑でより実務に近いお題を使い、実際にテスト駆動開発を行ないました。

テスティングフレームワークは、タイムテーブル上最後の枠だったこともあり、終了時間を大幅に過ぎて深夜3時ごろまで取り組んでいる方もいました。

参加者の数が多く人気のワークショップとなった
参加者の数が多く人気のワークショップとなった

以下のURLにハンズオン資料がアップロードされていますので、是非ご覧ください。

まとめ

朝10時からはじまったPHP Matsuriの1日目ですが、深夜4時になってもほとんどの参加者が会場に残り、自分の作業に打ち込んだり、出会った仲間と開発について議論を交わしていたりと、熱い一日となりました。このレポートによって、その時の空気感が読者の方に少しでも伝われば幸いです。

公式サイトにも感想ブログや写真などがまとめてあります。また、セッションなどのの動画はvimeoのPHP Matsuri 2011チャンネルに随時アップロードしていますので合わせてご覧ください。

2日目のレポートも近日中に更新予定ですのでお楽しみに!

おすすめ記事

記事・ニュース一覧