NICOLÁS BOTTARINI
Ugly Trivia

Ugly Trivia

Un juego de trivia con código feo listo para refactorizar

Nivel:Avanzado
Duración:Media
Temas:
TDDClean CodeOOPDiseñoSOLIDRefactoring

En cada turno, un jugador tira el dado y tiene que responder una pregunta del mazo que corresponde a su posición actual. Si la respuesta es correcta, gana monedas. Si es incorrecta, lo mandan a la cárcel. El tablero tiene 12 posiciones.

El resto de los detalles los vas a tener que descubrir en el código, como en la vida real. ¡Suerte!

Instrucciones

  • Bajate una versión del código a refactorizar en el lenguaje que prefieras.
  • Agregá los tests necesarios para asegurarte de no romper el código mientras refactorizás.
  • Mejorá el diseño refactorizando (sin alterar el comportamiento del código).

Técnica Golden Master

No podemos escribir unit tests razonables sin hacer algunos refactorings antes. Pero tampoco queremos refactorizar sin ningún test.

Lo que sí podemos hacer es testear la aplicación como un todo. Tomamos el control de todas las fuentes de input externas (generadores de números aleatorios, hora del sistema, input de teclado, etc.). Después guardamos todos los outputs que se producen (output de consola, emails enviados, archivos modificados, etc.). Ese es nuestro Golden Master.

Ahora podemos cambiar el código y comparar si sigue dando los mismos resultados que antes.

Código para refactorizar

  • trivia, de J.B. Rainsberger, en muchos lenguajes

Créditos