ttaka/tmp

d.hatena.ne.jp/ttaka_tmp

Bowling Game KataをPHPUnitでやってみた

皆さんは『Bowling Game Kata』ってご存知ですか?

  http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata

ボウリングのスコア計算プログラムをテスト駆動開発(TDD)で実装するもので、自分は恥ずかしながら知らなかったのですが、つい先日知るきっかけがあり、使い慣れたPHPでやってみました。

まずは、上記サイトの文頭にあるHereリンクからパワポをダウンロード。RequirementsおよびQuick designまで読んで、いざ実装開始!

そのときのソースコードが下記で、

  https://github.com/ttaka/the-bowling-game-kata

実装後に型を見ながらもう一度やってみました。

  • php/ownway … 自己流でやったもの
  • php/kata … 型通りにやったもの

型をやった後に自己流を見てみると、概ね同じ実装ではありますが、リファクタリングが足りてないですね...orz

パワポには、TDDの流れが順を追って記載されていて、何が悪いのかやリファクタリングにいたる考えなどの丁寧なコメントがあり、とても素晴らしいドキュメントです。

やったことない人はもちろんのこと、昔やったけどもう忘れちゃった人は、ぜひお好みのプログラミング言語とテスティングフレームワークでチャレンジしてみましょう!