2012年12月10日月曜日

ペアプロ会

Coderetreat in Tokyo 3rdというイベントに参加してきました。ペアプログラミングのイベントということだけ見て参加したら、実はGlobal Day of Coderetreatという世界94ヵ所で同時開催する壮大なイベントだったのでした。

この日は、6回別な人とペアプロして、Java、C#、C++、Ruby、Scalaという5言語を使いました。C++は2回やりました。
ペアプロのテーマはライフゲームで、45分間で作って、次のペアプロではコードをバッサリ捨てて最初からやり直す、ということをやってました。

参加者の中に、昔の会社の後輩がいました。朝に「アキラさん!」と話しかけられて最初誰かわかりませんでした。4年ぶりくらい?今は、主催会社のひとつであるGXP社にいるそうです。その人とはC#でペアプロしました。

あとはJavaプログラマの@AyumiHOSOZAWAさんとC++11でペアプロしました。「普段何使ってるんですか?」と聞いたらJavaと言ってたので「じゃあJavaでやりますか」と言ったら普段と違うものでやりたいというので、じゃあRubyかなと思ったら、私がRubyそんなに詳しくなくて滞りそうだったので、「やっぱりC++でいいですか」と言ってOKもらってやってました。

5回目にめるぽんとペアプロしました。片方がテストを書いて(インタフェースを決めて)、もう一方が実装を書く、無言ペアプロにチャレンジしました。この形式はそこそこ拮抗した相手じゃないと難しいのかなーと思ったので、言語はお互いがよく知ってるC++にしました。たまーに「これインタフェースが間違ってる」とか「ここバグってる」とかしゃべってしまいましたが、気になったところがあったらバッとキーボードを奪ったりしながらペアプロしてました。ここで初めて完成までたどりつけました。
「よっしゃ完成!!」と言ったらめるぽんが「ぼく、このプログラム落とせますよ!!」と言い出したので、どこがバグってるんだろうと考えて悶々としてたら「すいません、あれ正しかったです」と言ってきました。私バグとか出しませんし。

最後のペアプロは、@katzchangさんとScalaでやりました。めっちゃ楽しかった。
設計自体は、直前にやっためるぽんのとほぼ同じ、コンストラクタ以外では値を書き換えないimmutableな設計だったのですが、自分の考えにはなかった斬新な実装アイデアがいろいろ出てきておもしろかったです。発想の転換がまだまだ必要だなーということがわかったので、これでまた成長できますね。


こういう、モチベーションの塊のような場所に身を置くと、自分のモチベーションもすごい回復するので、やはりこういう場所にはちょくちょく参加するのがいいなーと思いました。


ただ、ライフゲームはもう飽きましたね。このイベントは毎回ライフゲームをやってるそうなので、そのおかげで毎回メンバは違うそうですが、まぁもう書きたくないからネタが変わったらまた行きます。