I have made two branches for the Kata, 1º do_they_ask, contains Develop programming, that is what the Client requested.
Are you now IN Random Shop! Our previous programmer, Mariano, has left the company to set up his own startup selling motorcycles using blockchain. Luckily, we have been able to hire you to continue working on our sales system
Develop programming and refactoring logic.
Description of the Kata:
What do we sell? At Random Shop we bet on chaos as a hallmark. When someone comes to our store we want them to feel completely lost, and not know what they are going to buy (or how much they are going to pay for it). Today, our stock consists of pets, gourmet products, Magic cards and footwear (outlet).
Magic Cards: The Gathering. These cards have a variable price, depending on their color: Blue 5 euros, Red 3.5 euros Green 4.40 euros, Black 6.80 euros and Brown 2.0. The Black Lotus is a collector's card worth 40,000 euros. Pets: their price depends on the number of legs and color. Land animals have a price of 4.2 euros for each leg. The fish have a price depending on the color: 10 cents for blue fish, 100 euros for gold fish and the rest of the fish have a base price. Gourmet products: These products depend on their "age". Wines are priced equal to 20 euros per year, while stinky cheeses are priced at 10 euros per year.
Magic card modification. The age of Magic cards can influence their price. Blue and red cards cost half as much when they are over 10 years old. Black and green cards cost 20% more when they are over 20 years old. Pet spiders. We want to add this new product to our store. The price of a pet spider is calculated as follows: 1.20 euro for each leg +2 euros if they are red, +3 euros if they are gold stinky spiders are half price How to start Add the unit tests for the cases that remain to be tested BEFORE BEGINNING WITH THE NEW REQUIREMENTS Run all tests every time you make a change to the code Analysis Look at the ShoppingCart::calculatePrice function. What problems does this code have? Is it easy or difficult to create a new product? Because?
-
Develop programming and refactoring logic.
-
Understanding and application of Tests.
- Basic knowledge of Java and Test programming.
-
A program that meets the minimum requirements of the Kata.
-
Tests that cover all its functionality.
-
Access to videos and online resources on Java programming.
-
Support and guidance provided by the training team.
-
Repository - GitHub
For further reference, please consider the following sections:
The following guides illustrate how to use some features concretely:
- Fernando Berzal - Refactoring.pdf-
- Refactorizar código - Jorge Sánchez Fernández
- Diego y María - Factoriaf5/ramdomShop-kata
1º In the repo you will find two branches, one, "do_they_ask", with the original code in which we have added the client's request about the new spider product and the modifications of the others.
2º In the main branch is the refactored code used method extraction, with a half boolean condition check before carrying the method call.
Bienvenida a Random Shop! Nuestro anterior programador, Mariano, ha dejado la empresa para montar su propia startup de venta de motos usando blockchain. Por suerte, hemos podido contrataros para continuar trabajando en nuestro sistema de venta
Marcos de competencias: Desarrollar lógica de programación y refactorización.
Descripción de la Kata: Qué vendemos? En Random Shop apostamos por el caos como seña de identidad. Cuando alguien viene a nuestra tienda queremos que se sienta completamente perdida, y que no sepa qué es lo que va a comprar (ni cuánto va a pagar por ello). A día de hoy, nuestro stock se compone de mascotas, productos gourmet, cartas Magic y calzado (outlet).
Cartas Magic: The Gathering. Estas cartas tienen un precio variable, dependiendo de su color: Azul 5 euros, Rojo 3.5 euros Verde 4.40 euros, Negro 6.80 euros y Marrón 2.0. La Black Lotus es una carta de coleccionista que vale 40.000 euros. Mascotas: su precio depende del número de patas y del color. Los animales terrestres tienen un precio de 4.2 euros por cada pata. Los peces tienen un precio dependiendo del color: 10 céntimos los peces azules, 100 euros los peces dorados y el resto de peces tienen un precio base. Productos gourmet: estos productos dependen de su "edad". Los vinos tienen un precio igual a 20 euros por año, mientras que los quesos apestosos tienen un precio de 10 euros por año.
Modificación de cartas Magic. La antigüedad de las cartas Magic puede influir en su precio. Las cartas azules y rojas cuestan la mitad cuando tienen más de 10 años. Las cartas negras y verdes cuestan un 20% más cuando tienen más de 20 años. Arañas mascota. Queremos añadir este nuevo producto a nuestra tienda. El precio de una araña mascota se calcula de la siguiente manera: 1.20 euro por cada pata +2 euros si son de color rojo, +3 euros si son de color dorado las arañas apestosas (stinky) están a mitad de precio Cómo empezar Añade los tests unitarios para los casos que falten por testear ANTES de COMENZAR CON LOS NUEVOS REQUISITOS Ejecuta todos los tests cada vez que hagas un cambio en el código Análisis Fíjate en la función ShoppingCart::calculatePrice Qué problemas tiene este código? Es fácil o difícil crear un nuevo producto? Por qué?
-
Desarrollar lógica de programación y refactorización.
-
Comprensión y aplicación de Tests.
- Conocimientos básicos de programación en Java y Test.
-
Un programa que cumpla los requisitos mínimos de la Kata.
-
Tests que cubren toda su funcionalidad.
-
Acceso a videos y recursos en línea sobre programación en Java.
-
Soporte y orientación proporcionados por el equipo formativo.
-
Repositorio - GitHub