目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

TDDBC横浜に行ってきた。

講演のまとめとかはほかの方がやっていらっしゃるのでその辺はほかの方に任せて、ペアプロでTDDをした上での自分の気づきと反省を書きます。

やったこと

今回は自分はrubyで参加しました。本当はPerlでやりたかったんですが、残念ながら候補言語になかったので。

当初、和田さんのデモのままBaseBallクラスのままで進行していたのですが、やっぱり、BaseBallだと範囲が広すぎるよねってことで、早々とPlayerにリネームしました。それにともない、クラスメソッドからインスタンスメソッドに切り替えました。
和田さんがおっしゃっていたのですが、クラス名の変更などをするときは、変更前と変更後のクラスを作っておいて両方のテストが通っているのを確認してから古いテストと実装を消すのがよいとのことでした。(パラレルチェンジ)
課題3まで終わったところで、バージョン管理していないことに気づき急遽gitレポジトリを作りました。その後はわりかしすんなり進み、自分たちのペアは課題5まで終わったところで時間切れとなりました。

終了後、コードが書きたい欲がふつふつと沸いたので、電車内でPerlでの実装を軽く書いてみました。

途中からだったりして不完全ですが、githubにコードは上げておきます。

ちなみにお題はこれ

ペアプロは強力

明らかに間違っているのに自分では全く気づかず、ペアに指摘してもらうということがたびたびありました。自分1人だけで書いていたらはまって時間を無駄にしただろうなと考えるとペアプロは強力だなと思いました。
あと人に説明しながらコーディングをすることにより、自分の頭が整理できたようにも感じられました。

開発環境は大事

自分のマシンでプログラミングをしたんですが、自分の環境はtscreen (+ zsh) + vim、ペアの人の環境はemacsでペアの人にはなれない環境でやることになってしまったので、その分リズムが悪くなってしまったのは否めません。
ペアを組むとするなら同じ環境の人同士組むか、gitなどでコードをリモート間で同期できる仕組みがないと難しいです。(今回はネットワーク環境が弱かったので、後者はできなかった)


いろいろ、細かい反省はいっぱいあるのですが、今回参加したことでTDDのリズムは何となくつかめたような気がします。自分自身でも演習を繰り返して、TDDを習得したいと思います。
あと、今回ペアプロの威力を存分に味わったので、業務でもペアプロを試してみたいです。
このイベントのために初めてまともにrubyを勉強しましたけど、rubyは書いていて楽しい言語ですね。