第一回チキチキ 日本ペアプログラミングの会java-ja支部会(仮)に行ってきた

java-jaには初参加です*1
1000人スピーカーカンファレンスの記事を書いてたら、時間がぎりぎりになって急いで会場に向かったのですが、強風ため電車が遅れていてまだ全員集まってなくて、30分遅れての開催となりました。
id:t-wadaさんによるTDD(テスト駆動開発)についてのお話を聞いたあと、参加者同士でペアプロを行いました。
デブサミでのt-wadaさんの発表には参加していなかったので、今回聞けてよかったです。
以下、勉強会の内容のメモ。

和田さんの講演

  • TDDはDeveloper Testingで開発を促進するためのテスト → 品質保証のためのテストなどとは違う
  • 何もない状態 → とりあえず動くものを書く → リファクタリングで品質の高める、という流れ
  • 開発環境
  • JUnitは4からstatic importが前提になったので、従来のEclipseなどの補完機能だと補完できない → コードテンプレートの利用
    • 後ほど、t-wadaさんが公開してくれるとのこと
  • JUnit4.4からHamcrestが統合されたが弊害もあり
  • コードは最初はred barから始まって、とりあえず動くものを作ってgreen barに
  • リファクタリング時は、常にgreen barでいることを保つ
  • 機能追加時は、red barでもよい
  • TDDの基本要素
    1. 仮実装(Fake it)・・・とりあえずgreen barになるものを実装する
    2. 三角測量(Triangulation)・・・2つ以上のケースでテストを実行してリファクタリングする(でいいのかな?)
    3. 明白な実装(Obvious Implementation)・・・実装内容が明白なものは仮実装・三角測量をするよりすぐ実装する
  • 大きいもやもやとした問題を小さい問題の集合として切り出す
  • テストしやすいコードはどう書けば? → テストから書けばいいじゃない
  • リファクタリングの基本の三要素
    1. 改名
    2. 抽出
    3. インライン化
  • Eclipseが空気を読んでくれるので、リファクタリングはCtrl + 1
  • テストはスキル → 達人のコードを写経

JUnitはほとんど使ったことがなかったので、非常に参考になりました。TDDで書いていると、red barなプログラムがgreen barになるのが楽しくなってきますね。
ただ、今回扱ったのが、結構局所的なところだったので、もっと大規模な開発の時にどう使っていくのかというところも知りたかったです。
あと、Eclipse3.2を使っていると、id:EwigkeitさんにDisられそうなので、そろそろバージョンを上げざるを得ない。

講演の中で出てきたEclipse便利ショートカット(Windows

講演の中で、いろいろ便利なショートカットが出てきました。以前、「Eclipseでソースを書く上での便利機能メモ - public static void main」で取り上げていないものばかりでした。
今まで、いかに自分がEclipseを使いこなせていなかったかがわかりますね。

  • Ctrl+1 ・・・ Eclipseが現在の選択しているものに応じたリファクタリングの機能を表示してくれるので便利
  • Alt+Shift+上下・・・メソッド単位→クラス単位のように選択範囲を変更できる
  • Ctrl+Alt+↓・・・今いる行、あるいは選択範囲のコピー。ただ、自分のマシンだとなぜか動かなかった。
  • F3・・・選択しているメソッドのソースコードを開く
  • F11・・・直近に実行したものを再度実行する

ペアプロ

  • ドライバー、ナビゲータの役割に分かれる
  • 一人5分書くのは書きすぎ → 1分で交代
  • 今回は40分でペア換え → どちらかが仕事を引き継ぐのかがビジネスでは重要

先生「はい、2人組作って〜」 俺「・・・」という現象がおきなかったのでよかったですね。
今回は、ボーリングスコアの計算をするプログラムを書きました。ただ、私がボーリングスコアの計算方法を詳しく知らなかったので、ペアの方にはご迷惑をおかけしました。
結局完成はしなかったのですが、自分が想像していたよりもきれいなソースコードになったのに驚きました。これは、今度、周りにいるメンバーで試してみたいですね。
t-wadaさんがペアプロで重要なのは、小さい一歩の踏み出し方を知ることだといっていましたが、ペアになった方々がJUnit経験者だったので、非常に参考になりました。


懇親会

本当は参加せずに帰ろうかと思っていたのですが、懇親会こそがjava-jaの本番と聞いていたので、参加しました。
噂に違わずカオスで面白かったです。とりあえずyamashiroさんがリア充なことがわかりました。
20時半頃に、新幹線の時間があるので帰りましたが、その際とりあえず3000円払ったのですが、聞くところによると7000円をオーバーしたそうなので、後で追加で払ったほうがよいのかな?
ラーメンサラダが食べられなかったのが残念。次回に期待です。

*1:ところでなんで先頭のjは小文字なのか。打ちにくい。