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

じゃばじゃ初参戦でしたが面白過ぎる会でした。これは明らかにjavaモテだった。

和田さんのデブサミ再演

和田さんはt-wadaなのかt_wadaなのかでアイデンティティーの喪失に悩んでいる。いっそのことt~wadaとかt=wadaとかも垢つくって多重人格キャラにしてしまえばよいのに(謎)
デブサミは他のを聞いていたので実は聞けていなかったのでとても嬉しい内容でした。他の公演も何度もきけたらいいのに。
2度目なのでかなり捲きでしゃべったはずが脱線が多かったのでやっぱり1イテレーションしかできなかったという罠。しかし脱線がおもしろかったのでとても満足でした。

内容をザックリと。(相変わらずPentasaフィルターが働いてるので内容に一部偏りがありますww)

  • ゴール設定の仕方が大事
    • どんなに問題が難しくてもどこをゴールとして描くか、
    • 短いサイクルでRedGreen利ファクタをくりかえせ!
    • 1〜100までとか一気にやると難しくなる。
    • 桁が切れるよとか最小セットでやるのだ。
    • まず15までだせばいいんじゃないかとか
  • デザインフォーテスタビリティー
    • テストをしやすいコードを書くにはテストを先に書けばいいじゃないか(マリーアントワネット)
    • テストを先に書くことでいいコードがかける
    • 責務がしっかりしていく
  • 今テストがないクラスをどうすればいい?
    • その時点でテストも回収も出きない状況になっている
    • ブラックボックスとしてとらえることができるのならばブラックボックスとしてざっくりテストをかいていく
    • たとえばセレニウムとかでもいいじゃん中をきれいに
    • だんだんきれいにしていけばいつかは幸せになれるよ
    • テストのないクラスに対してどうやってたいおうしていけばいいのかということを書いているWELCがいい本。アマゾンで反応が有れば訳すかもらしい!
  • 間合いを計る
    • 最小の一歩を踏み出すための最小の間合い
    • ショートカットとかより問題の割り方が大切。これが一番大変
    • こんなべたでいいんですか?こんなテスト書くんですか?
  • ロールを帽子だと考えてみる
    • 帽子を取替えながら開発する。
    • TDDは品質を保証するために行っているわけではない。PGとして着実に開発するためにおこなっている
    • 開発とテストは地続き。
    • 品質をあげたいと思ったときに品質を上げていくための突破口ができている
    • (TDDは品質を)保障しないんだけど向上するための手助けをできる
    • 定量的な評価はできないけれど定性的な評価となる
    • 人で分けるんじゃなくてモードでわける。今品質を考えているのか、、、
  • テストはスキル。
    • 習得可能で練習量によって上達できる。
    • 量は質に転化する(はぶさん)
    • 写経しようぜ
    • サンプルコードをまんまうつせ。やってみりゃいいじゃん
    • KentBeckがどんなような小さい一歩を踏み出したのかを疑似体験できる
  • Eclipseすっげーというターン!!!
    • 空気を読むEclipse。KY!!
    • ALT+上下 で選択行を移動できる
    • CTR+ALT+下 で選択行を複製
    • ALT+SHIFT+上下 で選択範囲の拡張。(変数→行→メソッド
    • スタティックインポートとかも保管できる
    • コードテンプレート大事。(あとで公開してくれるらしい。)

FizzBuzzをコーディングしながらの解説だったんですが、これはかなり新鮮でした。
なにせまずテストクラスを作って以下のように書いてCTR+1の「問題の解決」からそのままテストクラスに「fizzBuzzメソッドを作ってしまったこと。クラスを作るのは後の作業(りファクタリング)でいいのか!!とかなりショックを受けた瞬間でした。

		assertThat(fizzBuzz(3), is("Fizz"));

みんなでペアプロ

適当なペアを組んでTDDでペアプロ!しかしペアプロの言語がjavaでもrubyでも何でもいいのがjava-jaってすごいな〜
私はjavaでボーリングの得点計算を選びました。FizzBuzzよりちょいと複雑でよいね。引き数の与えられ方とかも特に規定がないから自由につくれるぶん悩むところがおおくておもしろい。
しかしテストファーストで作ると仕様がとてもはっきりする。そのぶん細かいところがきまっていないことがとても気になる(問題の最小化がむつかしい)このあたりはぐっとがまんなのかな〜?

改めて思ったのは「開発ってこんな楽しいことだったのか」ということ。話しながら、一緒に悩みながら考えていくことで凄くスムーズに考えられる。どちらかが悩みこんでしまいそうになっても相手がフォローしてあげれるし何より動いた時の喜びだ2倍にも3倍にもなる。

確かにTDDしたからっては品質が保障出来るわけじゃない、品質を向上させるための手助けをしてくれて品質改善の突破口を作ってくれるくらいで、定量的な評価は出来ないんだけれどもさ、
うちのような会社でも少しはこういうのやってもいいんじゃないかとね。。せめて新人とかにはこういう気持ちを味わって欲しい。そしてシステム開発を好きになって欲しい。3Kとかじゃなくて、すんげー事をしてるわけよ、僕らは。世界を動かしてるって言っても過言じゃない!しかもそれは君が書いているそのソースコードで。そんな楽しい職業ほかにない。大袈裟だけどそんな事を思った勉強会でした。

北海道で飲み会

高井さんがくねくねしまくってたり、Y!の人にあえたりニコニコの中の人が居たり、コーラがピッチャーで出てきたり、カニチャーハンが10個ぐらい来たり、爆発したり、小ネタがきけたり*1java-jaすげーな。
そういえばT○Sが嫌いな矢野さんと喋れなかった。おもしろそうだったのに〜次は話しかけねば。
しかもみんなあほ過ぎる。北海道で一人7200円は食い過ぎだろwwwwww
あとtwitter社内からアクセスできないからほぼ見てなかったんだけど見るようにしよ〜

  • 高井さん名言
    • 30過ぎたら飼い殺されるも好きな仕事するのも自分次第
    • リア充ってのは食パンくわえた女の子とぶつかる事
    • 嫁さん綺麗
    • エロ画像を隠すなら/dev配下がいいよ
  • じゃばじゃ総感
    • 変態だらけ
    • 女一人できたのは根性ある
    • すっげー楽しい
    • すげー人がたくさんいる
    • 楽しいってこういうことだよな
    • また参加する。

*1:ヨシオリさんとma.laさんとはまちちゃんコスプレ喫茶に行って、店員さんに「お仕事なにしてるんですか?」と聞かれ「スーパーハカー」と答えたら店員さん大爆笑だったらしい。普通ジョークだと思うけどメンツ的には間違ってない!!