Materias · 🏛️ Universidad y trabajo
Arquitectura y patrones
Ejercicios resueltos de Arquitectura y patrones paso a paso, con el error que más se comete en cada uno: Patrones de diseño, Atributos de calidad y decisiones de arquitectura y más. Gratis y en español.
Preguntarle al tutor de Arquitectura y patronesSin instalar nada. Puedes probar antes de crear cuenta.
Ejercicios resueltos de Arquitectura y patrones
Resueltos paso a paso, como te los explicaría el tutor, y con el error que más se comete.
Patrones de diseño
El checkout de una tienda en línea colombiana cobra por PSE, por Nequi y con tarjeta. El método pagar() tiene un if/else por cada medio de pago y ya va en 300 líneas. Cada vez que entra una pasarela nueva hay que abrirlo otra vez. ¿Qué patrón se aplica y cómo queda?
Cómo se resuelve
- 1Se identifica primero qué es lo que varía y qué se queda igual. Lo que se queda igual: validar el carrito, cobrar, registrar la venta, mandar el correo. Lo que varía: la forma de cobrar de cada pasarela.
- 2Cuando lo que varía es un algoritmo intercambiable dentro de un proceso que no cambia, el patrón es Strategy (estrategia).
- 3Se define una interfaz con lo único que el checkout necesita saber: PasarelaDePago con un método cobrar(monto, datosDelCliente) que devuelve un resultado uniforme (aprobado, rechazado, referencia).
- 4Cada medio de pago pasa a ser una clase que implementa esa interfaz: PagoPSE, PagoNequi, PagoTarjeta. Cada una se lleva su propio if/else adentro, donde sí corresponde.
- 5El checkout deja de escoger: recibe la pasarela ya construida. Quién la construye es una fábrica que la resuelve por configuración a partir del medio que eligió el cliente.
- 6La prueba de que quedó bien hecho: agregar Daviplata debe ser una clase nueva más una línea en la configuración, sin abrir el checkout. Eso es el principio abierto/cerrado.
Respuesta: Strategy con una fábrica: una interfaz PasarelaDePago, una implementación por medio de pago y una fábrica que escoge cuál según la configuración. El checkout queda sin un solo if de pasarelas.
El error de siempre: Mover el switch de lugar y creer que ya se aplicó el patrón: sacarlo del método pagar() y meterlo en una clase GestorDePagos. El switch sigue existiendo y sigue creciendo. La señal de que el patrón está bien aplicado no es que el código se vea más ordenado, es que agregar una pasarela no obliga a modificar ningún archivo existente.
Atributos de calidad y decisiones de arquitectura
El checkout llama en cadena, y de forma síncrona, a tres servicios: catálogo, inventario y pasarela de pago. Cada uno promete 99,9% de disponibilidad. ¿Qué disponibilidad tiene el checkout y cuántas horas al año queda fuera de servicio?
Cómo se resuelve
- 1Se pregunta primero cómo están conectados. Aquí están en serie: si cualquiera de los tres falla, el checkout falla. No hay redundancia entre ellos.
- 2En serie, las disponibilidades se multiplican, porque para que el conjunto funcione tienen que funcionar los tres a la vez: 0,999 × 0,999 × 0,999.
- 30,999³ = 0,997003. Es decir, 99,70%.
- 4La indisponibilidad es lo que falta para 1: 1 − 0,997003 = 0,002997.
- 5El año tiene 8.760 horas. Entonces 0,002997 × 8.760 = 26,3 horas al año fuera de servicio.
- 6Se compara con un solo servicio al 99,9%: 0,001 × 8.760 = 8,8 horas. Tres eslabones en la ruta crítica triplican la caída sin que ningún servicio sea peor que el otro.
Respuesta: 99,70% de disponibilidad, unas 26 horas al año fuera de servicio, contra las 8,8 horas que tendría un solo servicio al 99,9%.
El error de siempre: Creer que el conjunto vale lo mismo que el peor eslabón y responder 99,9%. En serie se multiplican, y de ahí sale la consecuencia práctica: cada llamada síncrona que se agrega a la ruta crítica cuesta disponibilidad aunque el servicio nuevo sea excelente. Por eso se sacan de la ruta crítica las dependencias que aguantan ser asíncronas o servirse de caché.
¿Y si tu ejercicio no es ninguno de estos?
No hace falta buscar el ejercicio exacto en internet. Trae el tuyo, o pide los que te falten.
Todo esto es gratis y sin instalar nada. Puedes probar antes de crear cuenta.
Lo que cubre
- Patrones de diseño
- Atributos de calidad y decisiones de arquitectura
Preguntas que le puedes hacer
- Patrones de diseñoExplícame «Patrones de diseño» con un ejemplo práctico y dime en qué suele equivocarse la gente.
- Atributos de calidad …Explícame «Atributos de calidad y decisiones de arquitectura» con un ejemplo práctico y dime en qué suele equivocarse la gente.
Cómo enseña este tutor
Es riguroso y completo: justifica cada paso y nombra el teorema, la norma o la buena práctica que está aplicando, para que puedas citarla en tu trabajo o en el parcial.
- · Te muestra el camino completo, no solo el resultado.
- · Si algo no te cuadra, te lo explica otra vez de otra manera.
- · Con una foto de tu cuaderno te dice dónde está el error.
- · Te arma quizzes de lo que acabas de ver para saber si de verdad quedó.
Otras materias de Universidad y trabajo