Saltar al contenido principal

Katas

// Pequeños retos, grandes lecciones

Pequeños ejercicios donde entreno diseño, TDD y refactor. Cada tarjeta enlaza al repositorio en GitHub.

El término viene de las artes marciales: una kata es una secuencia que se repite hasta que deja de ser un esfuerzo consciente y se convierte en reflejo. En código es lo mismo, pero los movimientos son decisiones de diseño.

Mars Rover íntegramente con IA en NestJS y arquitectura hexagonal. Deploy, move y rotate con tests unitarios y e2e. Análisis comparativo contra la versión manual pendiente.

TypeScript NestJS
  • AI-Assisted
  • Hexagonal
  • DDD

Taller Mock-101: dónde y cómo usar dobles de test sin acoplarte al detalle de implementación.

Java
  • TDD
  • Mocks

Envolver texto a N columnas. Ejercicio perfecto para pensar edge cases antes de teclear.

Kotlin
  • TDD
  • Edge Cases

Ranking con empates y ordenaciones. Pequeño pero muy expresivo para modelar dominio.

TypeScript
  • TDD
  • Domain Modeling

Rover en una cuadrícula con comandos y obstáculos. Iteración outside-in desde el acceptance test.

Java Spring
  • TDD
  • Outside-In
  • Clean Architecture

Misma kata en Kotlin, resuelta en estilo outside-in. La versión inside-out queda como reto pendiente.

Kotlin
  • TDD
  • Outside-In

Validación mínima viable de contraseñas: longitud, mayúscula, minúscula, dígito y guión bajo. Kata corta ideal para practicar TDD red-green-refactor con checklist incremental.

Java
  • TDD
  • Red-Green-Refactor

Clásico de Roy Osherove resuelto paso a paso con TDD red-green-refactor: delimitadores custom, multi-línea, excepción para negativos y filtrado de números > 1000.

Java
  • TDD
  • Parsing
  • Red-Green-Refactor

Transformar enteros a numeración romana hasta 3000, con excepción al superar el máximo. TDD estricto y mutation testing con pitest para medir la calidad de los tests.

Java
  • TDD
  • Red-Green-Refactor
  • Mutation Testing

Siete soluciones al mismo problema: desde if/else clásico hasta patrón Specification con Predicates. Un laboratorio para comparar estilos y ver cómo cambia el diseño.

Java
  • TDD
  • Refactor
  • Design Exploration

¿Quieres ver más o entrenar juntos?

Hay más código en mi GitHub. Si te apetece una sesión de pair programming, una code review o discutir un problema, escríbeme.