Katas intermedias: introducción práctica a patrones de diseño

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

Katas intermedias: introducción práctica a patrones de diseño
2:28

Bienvenido al mundo de los patrones de diseño. Te recomendamos escuchar este podcast (en inglés), sobre patrones de diseño y los diferentes enfoques de las tendencias actuales, para una introducción completa. 

A continuación, encontrarás un listado de katas que van a iniciarte en el mundo de los patrones. Cada enlace te llevará a una explicación detallada y la solución del ejercicio.

Cada kata incluye una introducción para ponerte en contexto y los detalles necesarios para ejecutarla. Recuerda, la práctica constante es clave para aprender y mejorar. ¿Listo para comenzar?

Lista de katas intermedias de introducción a patrones

Password Validation

En esta kata, abordaremos hasta la iteración 3, explorando tanto los enfoques positivos como negativos en los tests. Se enfatizará el polimorfismo y la importancia de no hacer el código excesivamente extensible sin validar los requisitos necesarios. También implementaremos dos patrones creacionales clave: el Builder y el Factory.

  • Iteración 1: Plantear la solución con lo que se pide en la iteración sin pensar en el futuro para evitar caer en YAGNI.
  • Iteración 2: Utilizar los resultados de la iteración anterior para avanzar al paso 4, implementando el patrón Strategy.

Gilded Rose

Esta kata se centra en trabajar con código legacy.

  • Iteración 1: Utiliza el patrón decorador para refactorizar el item sin necesidad de tocar la clase Item.

Simple Mars Rover

Reutilizando (o no) la Mars Rover utilizada en el primer nivel, el objetivo ahora es intentar trabajar el Command Query Separation pattern al igual que el [State pattern](<https://refactoring.guru/design-patterns/state>)
 

Aprendizajes

Durante estas katas, podrás:

  • Desarrollar habilidades en un entorno iterativo, donde la práctica constante es clave.
  • Explorar y aplicar patrones fundamentales como:
    • Builder, para la construcción paso a paso de objetos complejos.
    • Factory, para la creación de objetos sin especificar sus clases concretas.
    • Strategy, para cambiar dinámicamente el comportamiento de un objeto.
    • Decorator, para añadir responsabilidades adicionales a objetos de manera flexible.
    • Command - Query, para separar las operaciones que modifican el estado de las que solo consultan.

Estos conceptos te proporcionarán una base sólida en el diseño de software y te ayudarán a enfrentar desafíos complejos de manera estructurada y eficiente.

Te preguntas ¿cómo aplicar el Desarrollo Guiado por Pruebas (TDD) en tus proyectos de desarrollo? No pases por alto nuestra guía.

New call-to-action