2013年7月3日水曜日

Javaで実践するリーダブルコード ぷらす に参加してきました #readablecode

Javaで実践するリーダブルコード ぷらす
http://atnd.org/event/E0016341/0

はじめに

アジャイルサムライ横浜道場でお世話になっている@terahide27さんが主催されるということで、なにかお手伝いできることはないかと考え、スタッフとして参加しようと思いお願いしてみたところ承諾を得ることが出来ました。

リーダブルコード自体は購入直後に読んでおり、出来る限りプロジェクトに反映できるよう努力していました。



当日は、多くの人に集まってもらえたのはとてもありがたいと思うのと同時に、出来る限り良い経験をしてもらえるようにしたいと思いました。

ハンズオン

今回のハンズオンでは、ペア毎にお題を含めどのように進めていくのかなどを決めてもらいました。
全てのペアが提案されたボーリングのお題をやっていましたが、リファクタリングを重視しダメなコードから始めたり、初めからTDDで行なっていたりと進めて行き方はバラバラでした。


印象に残ったのは、手続き型でprimitiveな型しか使わないダメなコードから始めたペアは、どこもスペアの実装しようとした時点で破綻していた事でした。

最終的にコードレビューの時間でその違いがはっきりしてました。
途中からリファクタリングを始めたペアは、何とかして綺麗なコードにしようとしたが時間が足りず、修正に手一杯で名前を変える余裕が無かった様に感じました。
初めからリーダブルコードの内容を意識して書くことでリファクタリングやユニットテストのしやすいコードになっていくのではないかと思いました。

JUnitの使い方も経験によってばらつきが見られ、慣れていないとどのように書いたら良いのか分からなかったり、使い方そのものを知らなかったりと様々でした。
JUnit実践入門が出版されたおかげで始めるキッカケが出来たと思うので、これを機会に読みやすいコードにしていく為にもJUnitをどう使えばいいのか知ってもらえればいいなと思いました。

テストを全く書かなかったペアが最後になってテストを書いて実行してみたら、間違った結果を返したまま時間切れになったのを見かけ、やはり実装を確認しながら開発するのは大切なことだと感じました。

おわりに

TDDBC Tokyo 2013-07が開催される前にTAとして良い経験をさせて頂きました。
上手くお手伝いできたか不安ではありますが、参加者の皆様が今回の経験を活かして現場でも読みやすいコードを残していってもらえれば幸いです。

主催の@terahide27さん、スタッフの皆様、参加者の皆様、会場を提供して下さった株式会社アクシスウェア様、ありがとうございました。