天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

yr-learning Vol58に参加してきた

yr-camp.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

github.com

※今回は途中でコミットできる参加者が離席したことで、最後にまとめてコミットという形になりました。

実装を読み解く

毎回最初は1週間ぶりに書いたコードを改めて見ているのですが、前回分かりやすく整理したつもりのテストコードの構造が読みにくかったり、今までリファクタリングとかもしてきながら書いてきたコードがわかりにくくて、今日も学びになりました。

とりあえず、マナとカードの概念がぐちゃぐちゃになっているので、そこをどうにかしたいよね、という会話をしながら、とりあえずまずはRed→Green→Refactoringのサイクルを早く回すことを目標にやっていきました。

手札を減らせるようにする

今日は手札を減らせるようにするためのテストを書いていきました。

まずは仮実装をしていって、歩幅を小さく進めていたのですが、追加したいテストケース(現状バグっているテストケース)が大量に思いついてしまい、これでいいんだっけ...?というのを話し合いながらやっていきました。

業務中だと、これだけ歩幅を小さくしながらテストを書くことはあまりない気がするかも...?でも場合によってはこれくらいで書いているかも...?という話をしながら実装をしていきました。

手札から適切にカードを減らす

指定したカードを手札から減らすテストと実装を書いていきました。

ただ、指定したカードを減らすテストを書くためには、本番の実装ではまずやらないようなメソッドを書かないといけない気がしたり、既存のテストコードも含めて大きく修正しないといけないような方法を取らないといけなかったりして、何がいけないんだろう?という話を深堀りしながらテストを書いていきました。

テストのリファクタリング

リファクタリングとして、PlayerのテストなのかGameのテストなのか?を明確にしていきました。

また、次に追加すると効果的なTODOはなんだろうか?というのを話しました。