Giter Club home page Giter Club logo

kata310516---gildedrose's Introduction

Kata II: Gilded Rose Refactor Kata

Se trata de un ejercicio de refactorización en el que vamos a tener que leer el código que hizo otra persona, comprender el nuevo desarrollo a afrontar que nos requiere el enunciado, diseñar los cambios i los tests, e implementarlos (primero tests, segundo funcionalidad). Podéis descargaros el proyecto y el código en que nos basaremos para esta kata desde el siguiente enlace a un repositorio de GitHub: https://github.com/NotMyself/GildedRose

NOTA: No haremos subidas de ningún tipo en ese repositorio. Las haremos en nuestras ramas del repositorio que figura más abajo.

Al lio

El escenario es el siguiente: Una pequeña posada con una ubicación privilegiada en una importante ciudad, vende rosas bañadas en oro. El producto en cuestión se degrada constantemente con el paso del tiempo y es por eso que la posada tiene una aplicación que actualiza el estado de la calidad de sus productos en stock. Podemos hacer todos los cambios que queramos al método UpdateQuality y añadir el código necesario, pero no se nos permite modificar la clase Item ni sus propiedades.

Las normas que rigen la aplicación son:

  • Todos los ítems tienen una propiedad SellIn para indicar la cantidad de días que quedan para venderse.
  • Todos los ítems tienen una propiedad Quality para indicar su estado actual.
  • Al final de cada día, el sistema decrementa ambas propiedades para cada ítem.
  • Si la cantidad de días para vender un ítem expira, su calidad decrecerá 2 veces más rápido.
  • La calidad de un ítem nunca será negativa.
  • Los ítems “Aged Brie” (Brie añejo), en realidad aumenta su calidad a más días transcurren.
  • La calidad de un ítem no será nunca superior a 50
  • Los ítems “Sulfuras”, que són legendarios, tienen una calidad constante de 80 y nunca deben venderse ya que entonces pierden calidad.
  • Los ítems “Backstage passes”, al igual que el Brie Añejo, aumentan en calidad según se consume la propiedad SellIn: la calidad aumenta en 2 si quedan 10 días o menos, aumenta en 3 cuándo quedan 5 días o menos pero la calidad pasa inmediatamente a ser 0 una vez ya ha tenido lugar el concierto.

Nuestra tarea como desarroladores és:

  • Implementar lo necesario para que el sistema contemple un nuevo item Conjured, cuya calidad se vea degrada 2 veces más rápido que la de los ítems normales.

¿Cómo oriento el desarrollo?

Aplicando lo que queráis sobre buenas prácticas y patrones (SOLID, SRP, KISS, TDD, etc.) Eso sí, deben hacerse los Tests Unitarios.

¿En qué idioma?

En este caso, nos ceñiremos a las tecnologías y lenguajes en los que el código está disponible

Fecha

La tendríamos que tener lista para el último martex del mes, en este caso el 26/04/2016, así quedamos y vemos que ha hecho cada uno.

¡Donde la cuelgo!

Lo publicamos en el github de Tokiota directamente que está en https://github.com/Tokiota/kata310516---GildedRose

Quiero hablar con alguien de esto.

Usad el canal de Slack #comunity-bp al que os podéis suscribir y así tenemos todos un punto de encuentro.

Source

https://github.com/NotMyself/GildedRose

kata310516---gildedrose's People

Contributors

fernandoescolar avatar ericuss avatar spertusatti avatar

Watchers

James Cloos avatar Jose avatar  avatar  avatar Victor avatar naufal chiadmi alami avatar  avatar  avatar

Forkers

spertusatti

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.