Katas de introducción

Si en vez de leer prefieres escuchar, dale al play.

Katas de introducción
5:18

Iniciamos este recorrido por las katas más sencillas de Desarrollo Guiado por Pruebas (TDD). A continuación, encontrarás un listado completo con enlaces directos a explicaciones detalladas y ejercicios resueltos para cada tema. 

En cada link, tendrás una introducción que te servirá para ponerte en contexto y los detalles necesarios para ejecutar cada kata. Recuerda: la mejor forma de aprender y mejorar es practicando. ¿Empezamos?

Listado de katas introductorias

FizzBuzz

Se trabajan condicionales y la parametrización de distintos casos. Se recomienda hacer baby steps para reforzar la importancia del 'fake it until you make it' y asegurar que los tests fallen solo por la razón correcta.

Leap year

Esta kata presenta un algoritmo algo más complejo, ideal para trabajar con condicionales anidados.
  • Iteración 1: Aplica TDD cycle + Baby steps

Mastermind

Esta kata es ideal para practicar algoritmia sencilla y reforzar conceptos clave de TDD.

  • Iteración 1: Aplica el principio "Fake it until you make it" + TDD cycle + baby steps.
  • Iteración 2: Profundiza con Fake it until you make it + TDD cycle + baby steps + parametrización de tests + escritura de código limpio.
  • Iteración 3: Integra lo aprendido anteriormente + Programación Orientada a Objetos (OOP).
Desafíos adicionales:
  • ¿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

En esta kata se trabajarán condicionales, parametrización y se introducirá la primera estructura de datos clave-valor. Las especificaciones de negocio son similares a estas:
  • Iteración 1: TDD cycle + baby steps.
  • Iteración 2: Parametrización.
  • Iteración 3: No else statement.

String Calculator

El objetivo de esta kata es practicar el trabajo iterativo incremental, utilizando condicionales y tests parametrizados.

Roman Numeral

Esta kata refuerza los conceptos de bucles y estructuras básicas clave-valor, siendo muy ilustrativa del Transformation Priority Premise (TPP).

  • Iteración 1: TDD cycle + baby steps + parametrización.
  • Iteración 2: Trabajar el Transformation Priority Premise (TPP).
  • Iteración 3: Si un test falla, revertimos cambios (Test commit or revert).

Cuando termines la kata, hazte la siguiente pregunta: ¿Qué tan complicado sería añadir un nuevo número?

Build a Christmas Tree

En esta kata se trabaja con algoritmia básica y se enseña cómo hacer pruebas sobre el output, además de encapsular conceptos.

  • Iteración 1: TDD cycle + baby steps + aprendizaje de cómo hacer pruebas sobre el output con un formato concreto.
  • Iteración 2: Adapta tu código para que, dado el tamaño del árbol, puedas crear uno del tamaño que desees (aprendiendo sobre Fixtures).

Employee Report

Kata introductoria para aprender bucles y/o funciones de alto orden, además de desarrollar habilidades en la creación de asserts efectivos.

Code Syntax

Enfocado en algoritmia, estructuras de datos o máquinas de estado.

Bowling

Diseñado específicamente para practicar el Transformation Priority Premise (TPP).

Stack

Con la introducción de objetos, esta kata plantea el reto de pensar constantemente en las posibles modificaciones de este objeto. Es crucial asegurar que los tests no estén acoplados a la implementación. Se requiere el uso de baby steps y del TPP para garantizar que cada test falle por una sola razón.

  • Iteración 1: TDD cycle + baby steps (es fundamental que los tests sean deterministas y fallen por una sola razón).
  • Iteración 2: Si un test falla, revertimos los cambios (Test commit or revert).

Diferencia entre API Pública y Publicada

Aprende sobre la diferencia entre una API "pública" y "publicada". Es crucial comprender cuándo realizar pruebas sobre una librería que tiene una API/Interfaz/Contrato abierto, capaz de resolver problemas desconocidos, en contraste con la implementación de una funcionalidad de negocio específica, donde el API/Interfaz/Contrato puede ser más cerrado y está diseñado para un uso específico del código.

Simple Mars Rover

Algoritmo más complejo que introduce estructuras de datos y conceptos básicos de command y query, así como la gestión de estados en la aplicación.

  • Iteración 1: Estructuración inicial.
  • Iteración 2: Implementación de Programación Orientada a Objetos (OOP).
  • Iteración 3: Introducción de una funcionalidad avanzada al final de la kata: movimiento en incrementos de 45 grados (N, NE, E, SE, S, SW, W, NW).

Potter Kata

Kata algorítmica interesante centrada en aserciones y desarrollo iterativo incremental.

  • Iteración 1: Baby steps.
  • Iteración 2: Utiliza 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