- Por María Dueñas
- ·
- Publicado 20 Feb 2024
Antipatrones de TDD: Serie completa
Matheus Marabesi, software craftsperson en Codurance, analiza en profundidad la lista de los 22 antipatrones de TDD recopilada por James Carr. A..
Nuestra recomendación es que primero revises las katas de Programación Orientada a Objetos (OOP) y luego avances a conceptos más complejos de testing. Una vez que hayas profundizado en estos conceptos, comienza con la aplicación de las técnicas de refactorización que te presentamos a continuación.
Vas a encontrar un listado de katas con un cierto nivel de dificultad y un link en cada una de ellas que te va a llevar a una explicación detallada y el ejercicio resuelto.
En cada link de cada kata encontrarás una introducción como contexto y seguidamente los detalles que necesitas para poder ejecutarla. Y recuerda: la mejor forma de aprender es practicando. ¿Empezamos?
Tennis Kata: Imagina que estás haciendo una Code review y debes identificar los code smells y cuales serían sus correctas abstracciones. Revisa una introducción y explicación a la Tennis kata de la propia voz de su autora.
Iteración 1: Nivel 1.
Iteración 2: Nivel 2. Abstrae los conceptos en objetos que encapsulen la lógica de la kata.
Iteración 3: Nivel 3. Revierte los cambios cuando un test falle
Import-User-Kata
Iteración 1: Crea un setup para poder hacer test de tú kata, identifica los code smells, y crea un test [Golden master]
El objetivo es el setup, no resolver la kata.
Iteración 2: Con los test anteriormente creados resuelve la kata.
Gilded Rose: Trabajar con código legacy.
Iteración 1: No tienes que hacer los test, utiliza los que ya tiene la kata por defecto.
Iteración 2: Aplicación de object calisthenic.
Iteración 3: Empezar a trabajar en Tests de Caracterización.
Iteración 4: Aplica cambios en paralelo.
Beverages Prices Kata: Refactoriza una kata con una herencia dolorosa
Iteration 1: Utiliza parallel changes.
Parrot Refactoring Kata
Iteración 1: Identifica el codesmell e intenta resolverlos.
Iteración 2: Refactorización con Object calisthenic.
Smelly Mars Rover: Kata diseñada para que refactoricemos los code smell que vamos viendo pudiendo aplicar Parallel changes:
Iteración 1: Identifica los smells y refactoriza en orden de importancia según tu punto de vista.
Iteración 2: Aplicación de object calisthenic
Iteración 3: Utiliza parallel changes. Utiliza la Herencia para mover la lógica hacia donde te lleva el código (el código te habla).
Al terminar mira como otros han resuelto este kata y finalmente aplica los cambios tu mismo (no siguiendo el vídeo, eso seria hacer trampa y engañarte a ti mismo).
Smelly Tic Tac Toe: Kata de refuerzo si se quiere trabajar sobre un dominio conocido.
Parallel Change Kata: Aprende como realizar refactors sin romper ningún test o error de compilación
BugZero Kata: Soluciona todos los bugs y cúbrelos con tests.
Racing Car Katas: Kata para trabajar SOLID. La idea es aprender qué principio SOLID no se está cumpliendo y cómo resolverlo.
Iteración 1: TirePressureMonitoringSystem exercise
Iteración 2: UnicodeFileToHtmlTextConverter exercise
Iteración 3: TicketDispenser exercise
Iteración 4: TelemetrySystem exercise
Iteración 5: Leaderboard exercise
TripService: Trabaja en ramas superficiales (cubre el código de prueba y luego refactoriza los cambios).
Aplica la técnica de costuras.
Trabaja con código legado añadiendo primero la cobertura con test que resuelvan poco a poco los casos de uso que vas entendiendo.
Comprende porqué el Singleton puede hacer mucho daño a tú testabilidad.
Refactoring Kata Lift Pass Pricing
Iteracion 1: Cubre todo de tests, utilizando tests de caracterización y prepara tu estrategia de testing de manera consciente y trabajando en la pirámide de test.
Iteracion 2: Evoluciona la arquitectura de la aplicación a una arquitectura hexagonal.
Matheus Marabesi, software craftsperson en Codurance, analiza en profundidad la lista de los 22 antipatrones de TDD recopilada por James Carr. A..
Ser un líder técnico eficaz va más allá del establecimiento de tareas y objetivos: abarca la creación de un entorno donde los developers realmente..
Ya estás en el último nivel. Has ido completando fases de aprendizaje y vamos con las katas más complejas. Aquí hay un reto mayor en cada una de..
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores