Пример



Ката для боулинга очень понравилась: правила простые, есть несколько неожиданных усложнений. Главное — правильно разбить задачу на микро шаги. Начать с самых простых, постепенно увеличивая понимание игры:

- в начале игры счёт ноль

- после броска на 4 кегли счёт равен 4,

- если бросить 4, а затем 5, то счёт равен 9,

- больше 10 бросить нельзя,

- меньше 10 бросить нельзя

- в сумме двух бросков нельзя сбить больше 10

- после 20 бросков игра заканчивается

- если сбивать 10 кеглей, то игра закончится после 10 бросков

- максимальный счёт 100 (позже это изменится)



И так далее. Потом добавятся страйки, спейры и дополнительные броски. Код приходится несколько раз переделывать, ведь появляются новые требования: меняется структуру данных, способ расчёта, а тесты показывают, если что-то сломается. Видно весь кайф от протестированного продукта.



Я попробовал решить, комитя после каждого теста. Можно посмотреть: https://github.com/akaDuality/BowlingKata

Другая ката, про водителей автобусов и слухи: https://github.com/akaDuality/BusGossips