Arquitectura de Software
La arquitectura de software comprende elementos de software y sus relaciones, así como las decisiones que se toman para lograr ciertas características no explícitas como tiempos de respuesta, seguridad, mantenibilidad, y muchas más.
¿Qué es la arquitectura de software?
Antes de profundizar en modelos y patrones, entendamos qué es realmente la arquitectura, para qué sirve y por qué es fundamental en el desarrollo profesional.
Modelos Arquitectónicos
¿Cómo se arma un sistema? Hay quienes hacen todo en un solo bloque (Monolito), otros lo separan en dos grandes piezas (Cliente-Servidor), y están los que lo dividen en muchos bloquecitos que se comunican entre sí (Microservicios). Incluso existe la opción de que los bloques aparezcan solo cuando se los necesita, ante eventos (Serverless). Acá te muestro cada modelo, sus ventajas, sus limitaciones y cuándo conviene usarlos.
Modelo Cliente-Servidor
arrow_forwardBase de la comunicación entre apps web y móviles.
Arquitectura Monolítica
arrow_forwardTodo en un único bloque de despliegue.
Arquitectura de Microservicios
arrow_forwardComponentes independientes que colaboran.
Arquitectura Serverless
arrow_forwardFunciona sin administrar servidores.
Estilos de Arquitectura
Distintas formas de organizar el código en nuestro sistema.
Arquitectura en Capas
Técnica para organizar el código de un sistema en capas, en donde cada capa usa los servicios...
Arquitectura Hexagonal
También conocida como "Arquitectura de Puertos y Adaptadores", es un modelo...
Arquitectura Limpia
Clean Architecture o Arquitectura Limpia es un término que introdujo Robert C. Martin (Uncle Bob)...
Patrones de Arquitectura Empresarial
Este tipo de patrones son usados en aplicaciones de tipo empresarial. Fueron difundidos por Martin Fowler en su libro "Patterns of Enterprise Application Architecture", una guía fundamental a la hora de diseñar la arquitectura de un sistema.
account_tree Domain Logic Patterns
Se centran en la organización y estructura de la lógica del negocio, enfocados en facilitar su comprensión, mantenimiento y evolución.
Transaction Script
arrow_forwardOrganiza la lógica de negocio en procedimientos que manejan cada transacción...
Domain Model
arrow_forwardRepresenta con objetos los conceptos relevantes del dominio del problema y las...
Table Module
arrow_forwardOrganiza la lógica de negocio en clases o módulos, donde cada uno representa una tabla...
Service Layer
arrow_forwardDefine una capa de servicios dentro de una aplicación para abstraer y...
database Data Source Architectural Patterns
Diferentes enfoques para gestionar la capa de acceso a datos, con distintos niveles de abstracción y desacoplamiento.
Table Data Gateway
arrow_forwardActúa como un intermediario entre la aplicación y una tabla específica en la BD.
Row Data Gateway
arrow_forwardEncapsula el acceso a una fila de una tabla en una base de datos, actuando como un...
Active Record
arrow_forwardLos objetos encapsulan tanto los datos como la lógica de negocio y persistencia.
Data Mapper
arrow_forwardPropone un componente intermediario para mapear los datos entre la base...
sync_alt Object-Relational Metadata Mapping
Patrones para manejar el mapeo de objetos a bases de datos relacionales de forma avanzada.
Unit of Work
arrow_forwardMantiene una lista de objetos afectados por una transacción de negocio.
Identity Map
arrow_forwardAsegura que cada objeto se cargue solo una vez manteniéndolos en un mapa.
Lazy Load
arrow_forwardPospone la carga de objetos hasta el momento en que son necesarios.
Repository
arrow_forwardActúa como una colección de objetos en memoria para acceder al dominio.
desktop_windows Web Presentation Patterns
Estructuras para manejar la interacción entre el usuario y el sistema a través de la web.
architecture Base Patterns & Distribution
Brindan estrategias fundamentales para problemas comunes y distribución de datos.
Gateway
arrow_forwardSe utiliza para encapsular el acceso a un sistema externo o recurso externo.
Mapper
arrow_forwardImplementado como un objeto que mapea un conjunto de datos a otro...
DTO (Data Transfer Object)
arrow_forwardObjeto simple que transporta datos entre procesos para reducir llamadas.
Remote Facade
arrow_forwardInterfaz de grano grueso para mejorar el rendimiento en red.
Layer Supertype
arrow_forwardDefine una superclase para todas las clases dentro de una capa específica.
Separated Interface
arrow_forwardDefine la interfaz de un componente en un paquete o módulo separado...
Registry
arrow_forwardEstablece un mecanismo centralizado para almacenar y recuperar objetos e instancias.
Value Object
arrow_forwardUn objeto que representa un valor y no tiene identidad propia.
Explorar otros temas
Siguiente nivel:
Patrones de Diseño arrow_forward