TDD+モブプログラミングでワイワイする会 その40 に参加しました(原点回帰!)

TDD+モブプログラミングでワイワイする会 その40に参加しました!

その記録を残そうと思います

会の流れ

  1. TDDとモブプロについて、また今回のモブプロで意識することについての説明
  2. チームに分かれてTDD + モブプロする(1問目)
  3. 中間振り返り+休憩
  4. チームに分かれてTDD + モブプロする(2問目)
  5. 最後の振り返り

チームに分かれてTDD + モブプロする(1問目)

チームは四人で、私たちのチームでは一問目としてFizzBuzzPythonで解くことにしました。 まずToDoリストを作成し、テストを書き、TDDの「Red、Green、Refactoring」のループを回します。

私たちのチームは、TDDについて経験をしていた方がほとんどだったので、サクサク進みました。

最後に、「値が出力される」をどのようにテストできるかと言う話になり、Pythonのpytestにあるcapfdなどの機能を用いることで、標準出力に出力された値をassertすることができるという知見を得ました。

参考: docs.pytest.org

チームに分かれてTDD + モブプロする(2問目)

FizzBuzzが終了し、二問目として「Roman Numerals」という課題を行いました。

Roman Numerals - Coding Dojo

簡単に課題についての説明をすると、アラビア数字を入力し、ローマ数字を出力するメソッドをTDDで作ると言うものです。

一つずつToDoリストに挙げたテストとそれを満たす実装を繰り返していきましたが、あっという間に時間になってしまい、1~10までの実装しか行うことができませんでした。

最後まで実装することはできなかったものの、やはりTDDの醍醐味である動作するコードを常にアップデートしていくという感覚はとても楽しかったです。

テスト駆動開発」の書籍の冒頭でもありました「『動作する綺麗なコード』がテスト駆動開発のゴールだ」という言葉のように、まさに単体テストを重ねながらコードを書いていくことで「動作しながら、綺麗なコードを作り続ける」ことができることを実感できました。

shop.ohmsha.co.jp

最後に

半年ほど前にこのTDD+モブプログラミングでワイワイする会に参加させていただき、TDDに初めて触れました。そこから自分でTDDで開発するようになったり、会社でTDDYY会をやってみたりなど、最近ではTDDを自然に行うことができる様になってきていました。

しかし、最近では最初にTDDYY会でTDDを行ったときよりも、ToDoリストをサボってしまったり、一足飛びで実装してしまったりなど、TDDの作法から逸脱したことをしてしまうこともしばしばありました。

実は今回の参加のもう一つの目的は、自分の中で緩くなってしまったTDDの作法を叩き直すと言うものもありました。今回、みなさんとTDD+モブプロを行うことによってその目的を達成することができました!

これからTDDで実装を行っていく際は、作法にしたがってしっかりとTDDをしていきます!