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 patrones

Sin 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

  1. 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.
  2. 2Cuando lo que varía es un algoritmo intercambiable dentro de un proceso que no cambia, el patrón es Strategy (estrategia).
  3. 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).
  4. 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.
  5. 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.
  6. 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

  1. 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.
  2. 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.
  3. 30,999³ = 0,997003. Es decir, 99,70%.
  4. 4La indisponibilidad es lo que falta para 1: 1 − 0,997003 = 0,002997.
  5. 5El año tiene 8.760 horas. Entonces 0,002997 × 8.760 = 26,3 horas al año fuera de servicio.
  6. 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