Mix 20250112-2 Flashcards
¿Qué es la arquitectura peer-to-peer y en qué se diferencia de la arquitectura cliente-servidor?
La arquitectura peer-to-peer (P2P) es un modelo de red donde cada nodo actúa tanto como cliente como servidor, compartiendo recursos directamente entre sí sin necesidad de un servidor central. A diferencia de la arquitectura cliente-servidor, donde existe una clara separación entre proveedores y consumidores de servicios, en P2P todos los nodos tienen igual estatus y pueden iniciar comunicaciones.
Describe el patrón de diseño Factory Method y su propósito.
El patrón Factory Method define una interfaz para crear un objeto, pero permite que las subclases decidan qué clase instanciar. Su propósito es delegar la responsabilidad de creación de objetos a las subclases, promoviendo así el desacoplamiento y facilitando la extensión del código sin modificar las clases existentes.
¿Qué es LINQ y cómo mejora el acceso a datos en .NET?
LINQ (Language Integrated Query) es una característica de .NET que permite realizar consultas sobre colecciones de datos de manera integrada en el lenguaje de programación. Mejora el acceso a datos al proporcionar una sintaxis coherente y concisa para filtrar, ordenar y manipular datos, independientemente de su origen (bases de datos, colecciones en memoria, XML, etc.).
Explica el principio de ‘Open/Closed’ en SOLID.
El principio de ‘Open/Closed’ establece que las entidades de software (clases, módulos, funciones) deben estar abiertas para su extensión pero cerradas para su modificación. Esto significa que el comportamiento de una entidad puede ser extendido sin alterar su código fuente existente, promoviendo así la mantenibilidad y reduciendo el riesgo de introducir errores.
¿Qué es el patrón de integración ‘Message Broker’ y cuál es su función?
El patrón ‘Message Broker’ actúa como intermediario que facilita la comunicación entre diferentes sistemas o componentes mediante el enrutamiento, transformación y gestión de mensajes. Su función es desacoplar los productores y consumidores de mensajes, permitiendo una integración más flexible y escalable.
Define el concepto de cohesión y acoplamiento en el diseño de sistemas.
La cohesión se refiere al grado en que las responsabilidades de un módulo están relacionadas y enfocadas en una única tarea. Un módulo con alta cohesión realiza una función bien definida. El acoplamiento, por otro lado, mide el grado de interdependencia entre módulos. Un bajo acoplamiento es deseable ya que reduce las dependencias y facilita el mantenimiento.
¿Qué es ASP.NET MVC y cuáles son sus componentes principales?
ASP.NET MVC es un framework para desarrollar aplicaciones web siguiendo el patrón Modelo-Vista-Controlador. Sus componentes principales son:
1. Modelo: Gestiona los datos y la lógica de negocio.
2. Vista: Presenta la interfaz de usuario.
3. Controlador: Maneja las solicitudes del usuario, interactúa con el modelo y selecciona la vista adecuada para responder.
Describe las propiedades ACID en las transacciones de bases de datos.
ACID es un conjunto de propiedades que garantizan la fiabilidad de las transacciones en bases de datos:
1. Atomicidad: Todas las operaciones de una transacción se completan completamente o ninguna se aplica.
2. Consistencia: La transacción lleva la base de datos de un estado válido a otro.
3. Aislamiento: Las transacciones concurrentes no se interfieren entre sí.
4. Durabilidad: Los cambios realizados por una transacción se mantienen permanentemente, incluso en caso de fallos.
¿Qué es Hibernate en el desarrollo en plataforma Java?
Hibernate es un framework de mapeo objeto-relacional (ORM) para Java que facilita la interacción entre aplicaciones Java y bases de datos relacionales. Permite a los desarrolladores trabajar con objetos Java en lugar de escribir SQL directamente, manejando automáticamente la persistencia de datos y la gestión de transacciones.
Define el concepto de microservicios y menciona dos ventajas de su uso.
Los microservicios son una arquitectura que divide una aplicación en servicios pequeños, independientes y desplegables de manera autónoma, cada uno enfocado en una funcionalidad específica. Dos ventajas son:
1. Escalabilidad: Cada microservicio puede escalarse de manera independiente según la demanda.
2. Desarrollo independiente: Diferentes equipos pueden desarrollar, desplegar y mantener microservicios de forma autónoma, agilizando el ciclo de desarrollo.
¿Qué es UML y para qué se utiliza en el desarrollo de software?
UML (Unified Modeling Language) es un lenguaje de modelado estandarizado utilizado para visualizar, especificar, construir y documentar los artefactos de un sistema de software. Se utiliza para representar gráficamente la estructura y el comportamiento del sistema mediante diversos tipos de diagramas, facilitando la comunicación y el diseño entre los miembros del equipo.
Explica el patrón de diseño Singleton y cuándo es adecuado su uso.
El patrón Singleton garantiza que una clase tenga una única instancia y proporciona un punto de acceso global a ella. Es adecuado cuando se necesita exactamente un objeto para coordinar acciones en todo el sistema, como en gestores de configuración, conexiones a bases de datos o registros de logs.
¿Qué es el ciclo de vida de un proyecto según la gestión de proyectos?
El ciclo de vida de un proyecto comprende las fases por las que pasa un proyecto desde su inicio hasta su cierre. Generalmente incluye:
1. Inicio: Definición y autorización del proyecto.
2. Planificación: Establecimiento de objetivos, cronogramas y recursos.
3. Ejecución: Desarrollo de las actividades planificadas.
4. Monitoreo y Control: Seguimiento del progreso y ajustes necesarios.
5. Cierre: Finalización formal del proyecto y evaluación de resultados.
Describe brevemente qué es DevOps y cuáles son sus objetivos principales.
DevOps es una filosofía de desarrollo de software que promueve la colaboración y la integración entre los equipos de desarrollo (Dev) y operaciones (Ops). Sus objetivos principales son acelerar el ciclo de desarrollo, mejorar la calidad del software, facilitar la entrega continua mediante la automatización de procesos y fomentar una cultura de mejora continua.
¿Qué es una base de datos NoSQL y cuáles son sus tipos principales?
Una base de datos NoSQL es un sistema de gestión de bases de datos que no utiliza el modelo relacional tradicional y está diseñado para manejar grandes volúmenes de datos variados y distribuidos. Los tipos principales incluyen:
1. Documentales: Almacenan datos en documentos JSON o XML (e.g., MongoDB).
2. Clave-Valor: Almacenan pares clave-valor (e.g., Redis).
3. Columnares: Almacenan datos en columnas en lugar de filas (e.g., Cassandra).
4. Grafos: Almacenan relaciones entre datos como grafos (e.g., Neo4j).
Explica el concepto de aprendizaje supervisado en machine learning.
El aprendizaje supervisado es una técnica de machine learning donde el modelo se entrena utilizando un conjunto de datos etiquetado, es decir, cada entrada del conjunto de entrenamiento está asociada con una salida deseada. El objetivo es que el modelo aprenda una función que, a partir de nuevas entradas, pueda predecir las salidas correctas.
¿Qué es Entity Framework y cómo facilita el acceso a datos en .NET?
Entity Framework es un ORM (Object-Relational Mapper) para .NET que permite a los desarrolladores trabajar con bases de datos utilizando objetos .NET, eliminando la necesidad de escribir código SQL manualmente. Facilita el acceso a datos al manejar la mapeo entre clases y tablas, gestionar la persistencia y proporcionar consultas basadas en LINQ.