DISENO/ARQUITECTURA Flashcards
(25 cards)
¿Qué expresa el principio S de SOLID?
Single Responsibility — una clase/componente debe tener una sola razón de cambio.
Principio O de SOLID
Open/Closed — el código debe estar abierto a extensión pero cerrado a modificación.
Principio L de SOLID
Liskov Substitution — los subtipos deben poder sustituir a sus tipos base sin romper el programa.
Principio I de SOLID
Interface Segregation — preferir muchas interfaces específicas a una grande y genérica.
Principio D de SOLID
Dependency Inversion — depender de abstracciones, no de clases concretas.
Significado de DRY.
Don’t Repeat Yourself — evitar duplicación de conocimiento o lógica.
Significado de YAGNI.
You Aren’t Gonna Need It — no implementar funcionalidad hasta que sea necesaria.
Cohesión alta y acoplamiento bajo: ¿por qué se buscan?
Alta cohesión facilita mantenimiento interno
Responsabilidades de Model, View y Controller en MVC.
Model — datos/reglas
Ventajas principales de microservicios.
Escalado independiente, despliegue autónomo, resiliencia por aislamiento, elección de tecnología por servicio.
Desventaja clave de microservicios.
Complejidad operativa: orquestación, comunicación en red, monitoreo distribuido.
Arquitectura cliente-servidor: flujo básico.
Cliente envía solicitudes
¿En qué consiste un componente según diseño de software?
Unidad autónoma que encapsula funcionalidad, expone interfaces públicas y oculta detalles internos.
Criterios para un buen diseño de componentes.
Responsabilidad clara, interfaz bien definida, encapsulación, independencia para pruebas.
Patrones de diseño creacionales: menciona dos.
Factory Method, Builder, Abstract Factory, Singleton, Prototype (cualquiera de dos sirve).
Propósito del patrón Factory Method.
Permitir crear objetos sin acoplarse a su clase concreta.
Patrón Observer sirve para…
Notificar a múltiples objetos cuando el sujeto cambia de estado (uno-a-muchos).
Diferencia entre Adapter y Facade.
Adapter hace compatibles interfaces distintas
Vista lógica vs vista física en arquitectura.
Lógica: organización del código (clases, paquetes)
Qué muestra la vista de casos de uso.
Interacciones del sistema con actores externos y otros sistemas.
¿Qué es el patrón Singleton y un riesgo de usarlo?
Garantiza una única instancia global
Definición de antipatrones de diseño.
Soluciones aparentes que generan más problemas a largo plazo (ej., God Object).
Trade-off principal de capas (Layered Architecture).
Claridad y separación vs potencial penalización de rendimiento por saltos de capas.
Principio de inversión de dependencias aplicado a capas.
Dependencias deben ir desde capas de alto nivel a abstracciones, no a implementaciones de bajo nivel.