Above & Beyond

日々のアウトプット記録

【東京:高円寺】テスト駆動飲み会 -Test Driven Drinking-【10/15(月)】 に参加してきました

昨日は「【東京:高円寺】テスト駆動飲み会 -Test Driven Drinking-【10/15(月)】」という勉強会(飲み会?)に参加してきました。

tddrinking.connpass.com

なぜ参加したか

テスト駆動は以前から関心はあったものの、いざ実践となるとどう進めていいか分からず、もやもやしていました。 理屈としては分かるものの、実際に手を動かしてみて「これで良いなかな?」という感じが強い。 このままだと、自分はともかく他人と一緒に「TDDやろうぜ!」とはなかなか言い出しにくいなぁと。 で、そういう勉強会(できれば手を動かせるやつ)が無いかなと探していたところ、この勉強会を見つけたので参加しました。

会場はヴァル研究所さん。僕らの世代では経路検索と言えば「駅すぱあと」ですね!

f:id:kabukawa:20181015185456j:plain

2ヶ月ぶりくらいで行きましたが、相変わらずカッコいいです。

f:id:kabukawa:20181015190122j:plain

内容

取り敢えず最初から乾杯で始まりました。

f:id:kabukawa:20181015193102j:plain

テスト駆動飲み会という名の通り、まずはアルコールとピザから始まるわけです。 実ははじめての参加で知り合いもいないので、始まるまではかなり緊張していたのですが、最初の乾杯でなんだか気持ちが落ち着きました。 モブプログラミングでドライバーになると皆から注目されているので間違えたら恥ずかしいかも、みたいな気持ちがあったのですが、 みんあ飲んでいるから多少間違えても大丈夫そうだし、ワイワイやるのはいいな、と。

お題や使う言語などはその場に集まったメンバーで決めるということで、Goを使って自動販売機のプログラムを開発するという事になりました。

f:id:kabukawa:20181015193930j:plain

なんでGoかと言うと、参加者の投票で「やってみたい」という人が多かったからです。 ちなみに、Goが分かる人は誰もいません。

分からなければググればいいという感じで、取り敢えずやってみようかというスタイル。 こういう感じ、いいですよね。

で、コードをどうやって書くのかと思ったら、こんなサイトがあるんですね。

cyber-dojo.org

ブラウザさえ有れば、面倒な環境構築なしにテスト駆動でコードを書けるというサイトです。 対応する言語も30以上あります。 更にサンプルコードも用意されているので、すぐに始められるのもいいですね。

f:id:kabukawa:20181015194235j:plain

このサイトで、language, test-frameworkのリストからGo、exerciseから適当なもの(コードはファイル名などを含めて後から書き換えられるので)を選んで始めます。保存操作も不要なので、書いてはテスト実行、という手順の繰り返しも楽にできていいですね、このサイト。

開発は5分間ずつドライバー(コードを打ち込む人)とナビゲーター(ドライバーに支持する人達)を交代しながら進めました。 最初は「ボタンを押したらコーラが出てくる」という簡単な要件から始めたのですが、やってみると結構難しい。 進めるリズムとしては

スタート
 ↓
要件を元にテスト作成
 ↓
テスト実行(失敗:レッド)
 ↓
コードを作成/修正してテスト実行(成功:グリーン)
 ↓
リファクタリング
 ↓
テスト実行(成功:グリーン)
 ↓
スタートに戻る

という感じで、流れ自体は複雑なものではありません。 しかし、関数を必要以上に分割していたり、テストコードに業務的なロジックを入れてしまったり。 経験すると分かってくるような感覚というのがあるんだと思いますが、あまり実践したことがないので最初は結構戸惑いました。 でも、少しずつ慣れてくると、なんとなく分かってくる実感が湧いてきて、それからは見るのも打つのも楽しくなりました。 みんなでやっている、という感じも心地良いものですね。

そして気がつけば予定の2時間はあっという間に過ぎてました。 出来上がったコードは殆ど機能が実装できてなかったのですが、それでも得られたものはたくさんあった気がします。

終電の時間があるので最後までいられなかったのが残念でした。

まとめ

イベントの説明にある通り、

ペアで・モブで、プログラミングを楽しむイベントです。お酒をたしなみながらテスト駆動開発にノンビリ取り組んでいきます。

というコンセプトで、雰囲気もよく楽しくテスト駆動を体験することができました。 もう少し事前に勉強してから参加したら、もっと楽しめるんじゃないかと思いました。 次回がいつ開催されるかはわかりませんが、できればまた参加したいです。