¡Bienvenido al equipo de ingeniería de Gilded Rose! Como sabes, somos una posada que solo compra y vende los mejores artículos. Nuestros artículos se degradan constantemente en calidad a medida que se acercan a su fecha de caducidad, así que tenemos un sistema de inventario que lleva un registro de estos datos.
Necesitamos que añadas una nueva funcionalidad a nuestro sistema para que podamos empezar a vender una nueva categoría de artículos. Sin embargo, el código es un desastre y será difícil añadir la nueva funcionalidad a menos que primero refactorices el código existente.
Así que tu tarea tiene dos partes: refactorizar el sistema de inventario y, después, añadir la nueva funcionalidad.
Estos son los conceptos básicos de nuestro sistema:
Bastante sencillo, ¿verdad? Pues aquí es donde se pone interesante:
Para allanar el camino a la nueva funcionalidad, refactoriza el código existente y hazlo más fácil de cambiar.
Puedes hacer los cambios que quieras y añadir código nuevo siempre que todo siga funcionando correctamente (es decir, siempre que los tests de las funcionalidades existentes sigan pasando).
Nota: puedes asumir que los artículos siempre empiezan con una calidad válida. En otras palabras, los tests automatizados no comprueban qué ocurre cuando un artículo tiene una calidad inicial por encima del máximo, ni cuando un Sulfuras tiene una calidad inicial distinta de 80.
Hace poco hemos firmado un acuerdo con un proveedor de artículos Conjured. Tu trabajo consiste en añadir las siguientes reglas a nuestro sistema:
Regístrate en Exercism para aprender y dominar Ruby con 21 conceptos121 ejercicios y mentoría humana real, todo gratis.