Módulo 1. Hola Mundo
Módulo 2. Programando la web
Módulo 3. React
Proyectos
Formación continua
Guías

3.14 Refactoring

Introducción

Como ya sabemos, Refactorizar código consiste en modificar un código para mejorar su estructura pero sin añadir nuevas funcionalidades. En esta sesión vamos a usarla íntegramente para practicar refactorización de código usando una kata.

Refactorización

Se pueden aprender muchas estrategias de cómo refactorizar y son temas avanzados, por ejemplo, usar patrones de diseño de software para mejorar nuestro código. Además se necesita experiencia para aprender a distinguir código bueno de código mejorable. Normalmente cuando un código nos parece que puede mejorarse es que detectamos un olor de código (en inglés code smell) que nos indica que algo no está hecho de la manera más simple y semántica. Algunos ejemplos de code smells son

  • duplicidad: si veo trozos de código que son casi iguales

  • usar números mágicos (magic numbers): que son números en nuestro código sin explicar lo que son (mejor definirlos en una variable para darles un nombre)

  • funciones muy largas con muchos parámetros

  • mal nombrado de variables y funciones

Esta parte de refactorización requeriría todo un curso en sí misma. Pero lo que sí queremos que entiendas es la importancia de tener tests para refactorizar porque nos permiten cambiar cosas comprobando que nuestra aplicación sigue funcionando (no se rompe). Haremos un ejercicio específico para demostrar esta afirmación.

EJERCICIO 1

Para comprobar que se refactoriza mucho mejor con tests, os pasamos un ejercicio que ya tiene tests pero un código malísimo. Nuestro objetivo es mejorar el código que nos dan sin modificar el comportamiento (refactorizar) y que los tests sigan pasando. Se trata de la famosa kata Gilded Rose con JavaScript.