
- Por Riley Wallace
- ·
- Publicado 10-jul-2025 14:47:29
Radar de Palíndromos
La tecnología más reciente de radares de la NASA es capaz de capturar la forma de objetos voladores en forma de cadenas de caracteres. Como todos..
Estamos creando un carrito de la compra para una tienda de comestibles en línea. La idea de esta kata es construir el producto de forma iterativa.
Nombre | Precio | % Ingresos | Precio por unidad | Impuestos | Precio final |
Lechuga 🥬 | 1.55 € | 15 % | 1,79 € | Normal (21%) | 2.17 € |
Tomate 🍅 | 0.52 € | 15 % | 0.60 € | Normal (21%) | 0.73 € |
Pollo 🍗 | 1.34 € | 12 % | 1.51 € | Normal (21%) | 1.83 € |
Pan 🍞 | 0.71 € | 12 % | 0.80 € | First necessity (10%) | 0.88 € |
Maíz 🌽 | 1.21 € | 12 % | 1.36 € | First necessity (10%) | 1.50 € |
Código de descuento | Porcentaje de descuento |
---|---|
PROMO_5 | 5% |
PROMO_10 | 10% |
Como cliente
Quiero ver mi cesta de la compra
--------------------------------------------
| Producto | Precio con IVA | Cantidad |
| ----------- | -------------- | -------- |
|------------------------------------------|
| Promoción: |
--------------------------------------------
| Total de productos: 0 |
| Precio total: 0.00 € |
--------------------------------------------
Como cliente
Quiero añadir lechuga 🥬 a mi cesta de envío
Quiero añadir tomate 🍅 a mi carrito de envío
Quiero añadir pollo 🍗 a mi carrito de envío
Quiero añadir pan 🍞 a mi cesta de envío
Quiero añadir maíz 🌽 a mi cesta de envío
Quiero ver mi pedido
--------------------------------------------
| Producto | Price con IVA | Cantidad |
| ----------- | -------------- | -------- |
| Lechuga 🥬 | 2.17 € | 1 |
| Tomate 🍅 | 0.73 € | 1 |
| Pollo 🍗 | 1.83 € | 1 |
| Pan 🍞 | 0.88 € | 1 |
| Maíz 🌽 | 1.50 € | 1 |
|------------------------------------------|
| Promoción: |
--------------------------------------------
| Total productos: 5 |
| Precio total: 7.11 € |
--------------------------------------------
Como cliente
Quiero añadir lechuga 🥬 a mi cesta de envío
Quiero añadir lechuga 🥬 a mi cesta de envío
Quiero añadir lechuga 🥬 a mi cesta de envío
Quiero añadir tomate 🍅 a mi carrito de envío
Quiero añadir pollo 🍗 a mi carrito de envío
Quiero añadir pan 🍞 a mi cesta de envío
Quiero añadir pan 🍞 a mi cesta de envío
Quiero añadir maíz 🌽 a mi cesta de envío
Quiero ver mi pedido
--------------------------------------------
| Producto | Precio con IVA | Cantidad |
| ----------- | -------------- | -------- |
| Lechuga 🥬 | 2.17 € | 3 |
| Tomate 🍅 | 0.73 € | 1 |
| Pollo 🍗 | 1.83 € | 1 |
| Pan 🍞 | 0.88 € | 2 |
| Maíz 🌽 | 1.50 € | 1 |
|------------------------------------------|
| Promoción: |
--------------------------------------------
| Total productos: 8 |
| Precio total: 12.33 € |
--------------------------------------------
Como cliente
Quiero añadir lechuga 🥬 a mi cesta de envío
Quiero añadir lechuga 🥬 a mi cesta de envío
Quiero añadir lechuga 🥬 a mi cesta de envío
Quiero añadir tomate 🍅 a mi carrito de envío
Quiero añadir pollo 🍗 a mi carrito de envío
Quiero añadir pan 🍞 a mi cesta de envío
Quiero añadir pan 🍞 a mi cesta de envío
Quiero añadir maíz 🌽 a mi cesta de envío
Quiero aplicar mi cupón descuento PROMO_5
Quiero ver mi pedido
--------------------------------------------
| Producto. | Precio con IVA | Cantidad |
| ----------- | -------------- | -------- |
| Lechuga 🥬 | 2.17 € | 3 |
| Tomate 🍅 | 0.73 € | 1 |
| Pollo 🍗 | 1.83 € | 1 |
| Pan 🍞 | 0.88 € | 2 |
| Maíz 🌽 | 1.50 € | 1 |
|------------------------------------------|
| Promoción: 5% de descuento PROMO_5 |
--------------------------------------------
| Total productos: 8 |
| Total price: 11.71 € |
--------------------------------------------
Esta API se puede modificar, este es sólo un ejemplo.
Enfoque 1: pasar objetos como argumentos podría ser DTO
public interface ShoppingCart {
public void addItem(Product product);
public void deletItem(Product product);
public void applyDiscount(Discount discount)
public void printShoppingCart();
}
public interface ShoppingCart {
public void addItem(String productName);
public void deletItem(String productName);
public void applyDiscount(Double discount)
public void printShoppingCart();
}
Enfoque 3: pasar primitivas como argumentos y
devolver un DTO
public interface ShoppingCart {
public void addItem(String productName);
public void deletItem(String productName);
public void applyDiscount(Double discount)
public ShoppingCartList getShoppingCart();
}
Los ejemplos gráficos que ves son una referencia de cómo funciona la kata, no tienes que aplicarlos si no quieres.
La tecnología más reciente de radares de la NASA es capaz de capturar la forma de objetos voladores en forma de cadenas de caracteres. Como todos..
Como soy una persona olvidadiza, necesito un método que me ayude a recordar mi rutina matutina. Por eso he creado un programa que, según la hora del..
Historia: Durance ha encontrado un libro de magia en una de sus aventuras y ha decidido aprender a encantar sus armas. Debido a la naturaleza..
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores