第二回チキチキ 日本ペアプログラミングの会java-ja支部会(仮)いってきたよ!
毎度おなじみjava-jaイベント 第二回チキチキ 日本ペアプログラミングの会java-ja支部会
に行ってきました。これは6/6のお話。
場所はドワンゴの会議室。
形式としてはid:t-wadaのありがたいTDDの講義のあと、実際その場でペア組んでペアプロしよ
うぜ!といった感じ。
id:t-wadaのありがたいTDDのお話まとめ
聞きながらポイントを書き留めたのをそのままはりつけてみる。
テストかく
テストを失敗させる(RED)
目的のコードを書き
最初のテストを成功させる(GREEN)
テストが通るままでリファクタリング(Refactor)
DeveloperTestingとは・・・
PGの
PGによる
PGのためのテスト
3本柱
バージョン管理
PJに必要なものをすべて管理ツールにぶちこむ
テスティング
自動化(自働化)
繰り返しとか単純作業は機械にやらせる
XFD テストが落ちたりしたらランプがつくみたいな機械
動作する綺麗なコード(黄金の回転)
綺麗 3
きたない 1 2
動かない 動く
123にサイクルの半径がでかくなると大変になる
リファクタリングのコストがかかる
2の状態で仕様は満たしている
2ー>3がリファクタリング
リファクタリングのコストは?
通常時にPG工程にいれちゃう
客先に追加機能実装時のメリット(バグが少なくなるとか)を説明する
SBR嫁!w
TDDは設計技法!
TDDは品質を保証するものではない。が、品質は向上する。
TDD
ミクロの視点
マクロの視点
スローテストはどうすんの?←最近HOTな話題
計画する 計画し続ける
設計する 設計し続ける
完璧な設計なんてない。設計し続ける。
TDDのこころ(厨2的な意味ではなく)
一つずつ 少しずつ
複数を相手にするのはムリす。一人ずつ対処すればおk(by 宮本武蔵)
宮本武蔵はアジャイラー
素早く回す
System.out.printlntつかっちゃうのはどうよ?
いいと思うよ。それをassertにつっこんじゃったら?
消してassertにつっこめばおk
レガシーコードにテスト付けるならキャラクタライザーションテス
トで出してから仕様を満たすテストコードを書く
学習テストはあくまでも学習するためのテスト(APIの挙動を調べたりとか)
キャラクタライザーションテストは切羽詰まったとき用
テストのカテゴリーを全員でコンセンサスを取っておく必要がある
http://code.google.com/p/infinitest/
不安をテストにする
dankogaiは不安がない!
脳を無駄なく
コードを書いてるときに不安に対する時間が多い
不安なとこ/そうじゃないとこの切り分け力
ジャグリング
簡単なことから順番にステップアップしていく
テストは人のためならず
本嫁!写経しる!
gihyo.jpのTDD動画みたらいいよ
ぺあぷろ!
お隣に座ってられた@onkにペアプロをやさしく教えてもらってペアプロ童貞すてたw
ペアプロのお題は「プライマリティキューの実装」
初めてのTDD&ペアプロで感じたこと
- 全体的な流れ(設計)の確認は必要
- あとで大幅な変更が必要になっちゃう
- お互いの意思疎通大事
- いまどうやって実装しようとしているかをお互い同じことを考えるようにする
- テストを書くときには1メソッドで実装できるとこまでをかんがえる
- ダメだったら@ignoreすればいいじゃない
- 交代するタイミングむずかしい
- 今調子良さそうってときに交代するとリズム崩しそう
@onkが実際にやりながら色々教えてくれたので色々勉強になった。
本編の飲み会
先に言っておくと会費は7600円でしたw歪みなさすぎるwwww
飲み会でid:daisuke-mを初めとする地豆んじゃーの方々に囲まれて色々お話が聞けた。
と思ったら地豆のコミッターになってた。何をいってるか(ry