天の月

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

yr-learning Vol65に参加してきた

yr-learning Vol65 - connpass

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

これまでやってきたCoding Kataのソリューションを見る

github.com

一旦前々回でこれまでのようにCoding Kata(Trading Card Game)を終わりにしようという話だったので、実装の正解例を見ていきました。話としては以下のようなコメントが出ていました。(常体かつ箇条書きで記載していきます)

  • E2Eがあってそのケースは非常にシンプルというのは面白い。(それ専用のテストプログラムみたいなのもできていて良い)
  • DeckがPlayerクラスにListとして存在しているのは「あれ??」という感じだったけれども、考えてみるとListの標準操作しかしていないしそんなにクラスを分けなくてもいいんだなと思った。あとはそもそも、そんなにクラスがきれいになることというのは重視していないのかもしれないと思った。
    • PlayerTest#cardDeckShouldContainInitialCards()はここまでテストしたいならDeckを外だししてもいいのではないか?と思う
  • Loggerが結構挟まっていて標準出力の代わりのような使われ方がされている
  • Moveという概念はコンピューターのStrategyを実装するために作られているのかな?という気はした
  • PlayerTestはテストケースが細かく切られている印象がある
  • Builderパターンはもっと使っていきたいと思った
  • 境界値みたいなテストケースがないのは自分たちとの差だなと思った(ソリューションのほうがテストケースは少ない)
  • Testクラスのテスト名とテストの実装は仕様を語っている感じがしてすごく良いなと思った
  • assertはテストの途中に結構はいっており、自分たちが作っていたテストケースをまとめているよな感じはある
  • ManaとManaSlotをAssertするテストケースはきれいだし良いなと思った

全体を通した感想

ぱっと見は自分たちが書いてきた内容とそんなに大きな違いはなかったのですが、(そのつもりはなかったけれども)複雑に書いていたところがシンプルに書かれていたり、テスト用にオーバーロードを多用していたりといったところは発想自体がなかったところだったので、非常に勉強になりました。