TDD Boot Camp 札幌 2.3に参加しました。

12月10日に行われた、TDDBC札幌 2.3に参加しました。
今回はJavaで参加。
お題は「ボーリングのスコア計算」でした。

事前イメージがあった

今回は、お題を聞いて最初におぼろげに実装をイメージしていました。
実装がイメージしやすかった分、当日も取り組みやすかったなと感じました。

int score = new Game("omuko").bowling(1,2)
                             .bowling(3,4)
                             .bowling(5,2)
                             .bowling(6,2)
                             .bowling(8,0)
                             .bowling(9,0)
                             .bowling(6,4)
                             .bowling(2,3)
                             .bowling(1,1)
                             .bowling(5,2)
                             .score();
assertThat(score, is(68));

※スコアはだいたい普段の成績、残念。

イメージ通りにはいかない

当日のプログラムはこちら https://bitbucket.org/irasally/tddbc2.3
細かい部品から作っていったのですが、どうしても(Javaの言語の性質もあると思いますが)かっちり作ろう、という方向に流れがちでした。
たぶん、一番エラーチェックが多いチームだったと思う。
「クラスに状態を持たせすぎるとテストが大変」というのを身をもって体験した感じ。
でも、部品を作り込んでいた分、部品の組み合わせは思ったよりも楽だった。
この辺りのバランス感覚は、磨いていきたいなと思いました。
「まず、1本簡単な実装を最初から最後まで通す、細かいことは2週目に考える」
途中からその言葉を何回か言いながら開発を進めていきました。

手を動かしたくてたまらなかった

わりと、テストで方向性がつかみやすかったことと、取り組みやすいお題だったことで、
悩んで考える時間よりも、手を動かしてコードを書きたい時間が長かった。
「どうやってテストを書こうか…」と悩む時間が今までで一番少なかったように思いました。
TDDをやりながら開発速度が上がるというのはこういう経験なのかもしれない。

自分が体験して思ったことは

  1. IN/OUT、得たい結果がはっきりしているお題であること
  2. お題(取り組むべき相手)が技術的に自分の手に負えること

この二つが揃うと、TDDがとても楽しくなりますね。
特に2は、自分が技術力を上げれば上げるほど広がる幅なので、精進あるのみ!です。

次回も是非参加したいと思います。
主催者の@shuji_w6eさん、今回もありがとうございました!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください