ぼくからみたPHPmatsuri。時系列順にダラダラと。
事前
事前にそれなりに準備したけど、途中でめんどくさくなる。
https://docs.google.com/document/pub?id=1-FRoaPj048otlAVXD3nwllxg3NtTrpwlvnXkZY73GiQ
fibonacci数列のサンプルプログラム書いててはまってテンションも落ちる。
phpmatsuriの俺のファインプレー2つ
– we have IRC channel
遅刻して空いてる席に座ったら右がkrisで左がjoelだったので、 “we have IRC channel #phpmatsuri irc.freenode.net”って書いたテキスト見せたら”おk”って二人ともIRCに入ってきた
– where are you from ?
rubykaigiで見ていいなーと思ってたので空いてたホワイトボードに付箋をペタペタ貼った。まるぱくり。
途中で誰かが日本地図と世界地図を書いてくれて、見た目もかっこいい感じになった。
目標
ursmがhamlのpatchをおもむろに送り付けるという日本hamlの会の活動を聞いたことがあって、そういうのやってみたいと思ってて、よく使うライブラリにいきなりテストコードを送り付けるのをやってみようと思う。
この辺の時点でもうペアプロ祭りをやる気はなくなっていた。題材がうまく選べないし。NetUserAgentMobile や 絵文字なライブラリを眺めてた。
TDDワークショップ
このころ(17時頃)hirocasterがTDDワークショップやりたいっていいはじめて、やぶさかではないし、これはこの人たちをこのままほっといたら死んでしまうしそれはあまりに不憫なので、サポートすることにした。まずお題も決めてない状態で、IRCで、LRUHashとかbowlingとかTDDByExampleのbankとかいろいろアイデアを出して、IRCにいたtenkomaにムチャぶりしたらFizzBuzzでいいんじゃないの、と。だので FizzBuzzでいこう、とはじめる。
hirocasterが「limeでやれるようにlimeとからのFizzBuzzTest.phpとFizzBuzz.phpを用意してみた!」って言ってたので、軽くリポジトリ見てみるとうーんというかんじで、これはこちらに引き寄せないとしんでしまう。limeでfizzbuzzの素振りをして、さらに勢い余ってphpunitでfizzbuzzの素振りをしてみた。
http://github.com/sanemat/PHPMatsuri-TDD
case-lime ってtagづけしたのがlimeで、その延長上で case-phpunit ってtagづけしたのがphpunit。
jirei night終わって帰ってきたhirocasterとどうすすめるかについて、ほんとに軽くミーティング。「どうすすめる?」「どうすすめるのがいいと思う?」「hirocasterのmacでペアプロするのがいいんじゃないの 俺driverするから説明して」「じゃあそれでいこう」よくこれで会話が成り立ったなーと思う。気心知れているのっていいね。
夜中の1時から2時前ぐらいまでTDDのワークショップをやった。
ペアプロにはならずに、ほぼおれがdriver独占してて
http://www.mightyverse.com/media/69aea61b-af58-453a-8faa-dbb1a7426f43
と言われかねない状況だった。
リアルタイムな成果はこのmaster
http://github.com/hirocaster/PHPMatsuri-TDD
FizzBuzzをつかったTDDの説明としてはぼちぼちの出来だったと思う。少なくともだいたいの人にふーんなるほどというところまでは持っていけたと思う。ウソ言ってないかなーとたまにちらちらsizuhikoとtenkomaの方みたけど明らかにおかしい顔はしてなかったのでよしとする。サポートしてくださった参加者の皆さんありがとうございました。
で、この一発目で実装できそうな課題をTDDでやることが目の前のレガシーコードに対していますぐなんの役に立つの?
といわれると難しい。こんなのいいからそこやれよ、という不満の顔もかんじたけど、ワークショップの論点とはちょっとずれるので、みなかったことにした。レガシーコードな現実と闘う方法は各フレームワークのたこつぼのなかで消化していくしか現実的でないと思う。すくなくともsymfony1系の”functional test”についてはまず社内向けにどうにかしてみようかと書いてて今思った。functional といいつつ想定しているのはあきらかにend to endなテストなので用語としてはあやしいsymfonyイディオムので””でくくっておいた。そのへんはjobeetからして用語は意図的に(?)混同しているのである程度は気にしても仕方ない。
これでエネルギーを使い果たして、次の日(phpmatsuri 2日目)とその次の日(月曜日)はぐったりしていて、使いものにならなかった。おしまい。