Katas de introducción

Iniciamos este recorrido por las katas más sencillas de TDD. A continuación vas a encontrar un listado de ellas y un link que te va a llevar a una explicación detallada de cada una de ellas y el ejercicio resuelto.

En cada link de cada kata encontrarás una introducción que te servirá para ponerte en contexto y seguidamente los detalles que necesitas para poder ejecutarla. Y recuerda: la mejor forma de aprender y mejorar es practicando. ¿Empezamos? 

FizzBuzz: Se trabajan condicionales, parametrización de distintos casos y se recomienda hacer baby steps, para poder reforzar la importancia del "fake it until you make it" y que los test tienen que fallar solo por la razón correcta. Una de las recomendaciones que solemos hacer es que mientras hacen la kata.

Iteración 1: TDD cycle + Baby steps
Iteración 2Trabajar el TPP
Iteración 3: Si un test falla revertimos cambios (Test commit or revert)

Leap year: Esta kata presenta un algoritmo un poco más complejo que es perfecto para trabajar condicionales anidados
 Iteración 1: TDD cycle + Baby steps
 
Mastermind: Kata de algoritmia sencilla, donde
Iteración 1: Fake it untill you make it, TDD Cycle, baby steps
Iteración 2: Fake it untill you make it, TDD Cycle, baby steps, parametrizacion de test, código limpio
Iteración 3: Lo anterior + OOP
¿Podrías hacer que el código elegido por el codemaker sea generado por el juego?
¿Cómo cambiaría tú diseño?
¿Qué test te faltarían?
 
Rock Paper Scissors Kata: Se trabajarán condicionales, parametrización, las especificaciones de negocio son similares a estas, introducción a la primera estructura de datos clave valor.
Iteración 1: TDD cycle + Baby steps
Iteración 2: Parametrización
Iteración 3: No else statement
 
String Calculator: El objetivo de la kata es el uso del trabajo iterativo incremental, con condicionales y test parametrizados.
Iteración 1: TDD cycle + Baby steps
Iteración 2: Trabajar el TPP
Iteración 3: Si un test falla revertimos cambios (Test commit or revert)
 
Roman Numeral: Refuerzo del concepto de bucles y estructuras básicas clave valor. Kata muy ilustrativa de qué es el Transformation Priority Premise premise TPP
Iteración 1: TDD cycle + Baby steps + Parametrización
Iteración 2: Trabajar el TPP
Iteración 3: Si un test falla revertimos cambios (Test commit or revert)
Cuando termines la kata hazte la siguiente pregunta: ¿Cómo de complicado sería añadir un nuevo número?
 
Build a Christmas tree: En está kata se trabaja algoritmia básica al igual que se enseña a hacer test sobre el output y a encapsular conceptos
Iteración 1: TDD cycle + Baby steps + Aprender a hacer test sobre output con un formato concreto
Iteración 2: Adapta tú código para que dado el tamaño del árbol, puedas crear uno del tamaño que quieras. (Aprender sobre Fixtures)
 
Employee Report: Kata para empezar a aprender sobre bucles y/o funciones de alto orden, así como trabajar en hacer buenos asserts.
 
Code Syntax: Trabaja la algoritmia, estructuras de datos o la máquina de estado
 
Bowling: Kata diseñada para practicar TPP
 
Stack: Con la introducción de Objetos, esta kata plantea el reto de pensar constantemente en las posibles modificaciones de este objeto, haciendo que tengamos que tener presente que es un objeto abierto a modificaciones, por lo que deberemos tener tests NO acoplados a la implementación de este. Es obligatorio el uso de baby steps y de el TPP para que uno de nuestros test no esté a su vez probando demasiadas cosas o que nuestros test conozcan demasiado la implementación.
 
Iteración 1: TDD cycle + Baby steps (importante los test deben ser deterministas y fallas solo por una razón)
Iteración 2: Si un test falla revertimos cambios (Test commit or revert)
 
Aprende sobre la diferencia entre API “publica” y “publicada”, es importante que entendamos muy bien cuando estamos haciendo test sobre una librería que tiene que tener una API/Interfaz/Contrato abierto de forma que pueda solucionar problemas que desconoces VS la diferencia de implementar una funcionalidad de negocio que resuelve 1 problema claro y la API/Interfaz/Contrato puede ser más cerrado, ya que sabemos exactamente el uso que se le queire dar a nuestro código
 
Simple Mars Rover: Algoritmo más complejo con estructuras de datos e introducción al command y query básico (en cuanto a conceptos), introducción al estado en la aplicación.
Iteracion 1: Estructurada
Iteración 2: OOP
Iteración 3: Introduce al final de tú kata y solo después de haber terminado, la posibilidad de que tú kata se pueda mover en 45 grados, es decir, N, NE, E, SE, S, SW, W, NW
 
Potter kata: Kata algoritmica interesante donde el foco son las aserciones y el desarrollo iterativo incremental:
Iteración 1: Baby steps
Iteración 2: Usa mutant testing sobre tu kata anterior mira cuantos mutantes viven y como mejorar tus test
Iteración 3: Aplicación de object calisthenic

 

 

 

New call-to-action