Herramientas y partes de un diseño:
La arquitectura está separada en dos partes fundamentales:
Componentes: Son partes de nuestro sistema que cumplen una función específica
Estos mismos componentes “modulares” pueden estar formados por más componentes, ya bien objetos o capas, que actuan como subcomponentes en su interior.
La comunicación existente entre ellos se lleva a cabo por medio de conectores.
Conectores: Estos no están asociados a un dominio específico y son independientes a la hora de su análisis, pudiendo un e-commerce o una red social el mismo tipo de conector.
Tipos de conectores:
-
Llamado a procedimiento: Invocan de un componente a otro componente y esperan una respuesta.
-
Enlace: Vinculan fuertemente un componente a otro, incluso para la compilación. Visto en lenguajes compilados, y en componentes que forman parte de un monolito
-
Evento: Permiten a un componente notificar un evento (que algo sucedió), y a otros componentes escuchar y reaccionar ante un evento.
-
Adaptador: Ayudan a compatibilizar la interfaz de un componente con la de otro componente
-
Acceso a datos: Nos ayudan a acceder a recursos compartidos de datos, como APIs, sistemas de archivos y bases de datos. Compatibiliza la interfaz del dato con la interfaz que espera el componente que estamos usando.
-
Flujo: Permite la recolección de datos en un flujo de información continuo por parte de otro componente que tiene intereses en obtener varios o todos los datos del flujo.
-
Arbitraje: Coordinan los permisos de acceso a un recurso entre componentes y deciden quien se encarga de distribuir dichos comportamientos.
Ej: Test A/B, teniendo varios componentes disponibles recibimos un pedido y se decide qué versión enviar para comparar diferentes atributos de calidad. -
Distribuidor: Facilita la distribución de un mensaje a varios componentes a través de un solo conector.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?