Modelo terceria de dominio

4:27cómo conectar un dominio de terceros || shopify help centershopify help centeryoutube – 8 abr 2020

Este artículo necesita citas adicionales para su verificación. Por favor, ayude a mejorar este artículo añadiendo citas de fuentes fiables. El material sin fuente puede ser cuestionado y eliminado.Buscar fuentes:  «Domain model» – noticias – periódicos – libros – scholar – JSTOR (noviembre de 2015) (Aprende cómo y cuándo eliminar este mensaje de la plantilla).
En la ingeniería del software, un modelo de dominio es un modelo conceptual del dominio[definición necesaria] que incorpora tanto el comportamiento como los datos.[1][2] En la ingeniería ontológica, un modelo de dominio es una representación formal de un dominio de conocimiento con conceptos, roles, tipos de datos, individuos y reglas, típicamente basado en una lógica de descripción.
Un modelo de dominio es un sistema de abstracciones que describe aspectos seleccionados de una esfera de conocimiento, influencia o actividad (un dominio[3]). El modelo puede utilizarse para resolver problemas relacionados con ese dominio.
El modelo de dominio es una representación de los conceptos significativos del mundo real pertinentes para el dominio que deben ser modelados en el software. Los conceptos incluyen los datos involucrados en el negocio y las reglas que el negocio utiliza en relación con esos datos. Un modelo de dominio aprovecha el lenguaje natural del dominio.

Comentarios

Tengo una entidad de dominio, ProjectEstimate, que sabe calcular su propia cantidad de moneda estimada. Se trata de un simple cálculo basado en una serie de valores fijos disponibles en el propio objeto. Se llama al método Calculate como parte de la lógica de negocio y se actualiza el campo EstimateCost con el importe. Nada demasiado difícil.
Sin embargo, ahora la lógica de cálculo ha aumentado drásticamente su complejidad y se ha introducido detrás de una llamada a la API HTTP de un tercero, y estoy luchando para averiguar cómo hacer llamadas a esta API sin violar la «pureza» del dominio y su lógica.
La parte que tienen en común es crear una frontera de abstracción entre la semántica de la llamada a la API y su implementación. Es decir, vamos a crear una fachada que parece una función; toma algunos valores como argumentos y devuelve un valor.
Este patrón debería resultar familiar, ya que es análogo al patrón de repositorio, en el que presentamos una semántica simple de colección/caché y ocultamos detrás de la fachada un montón de detalles de implementación de la persistencia.

Ver más

Si la lógica de mi modelo de dominio depende de un componente de terceros o de alguna librería/gestor .dll propio, ¿es aceptable crear esta dependencia? Obviamente no tengo dependencia de ninguna fachada o capa de persistencia de mi capa de dominio, pero tengo curiosidad por saber si los otros tipos de dependencias rompen alguna regla de DDD.
Sin embargo, creo que algunas librerías de terceros pueden ser referenciadas directamente desde el código de tu dominio (si no, no podrías usar tipos incorporados de java/c# porque también pueden ser considerados de terceros). Estas son las bibliotecas que no tienen ninguna de las características anteriores, noda-time por ejemplo. También puedo ver como algunas bibliotecas de matemáticas o de colecciones pueden ser referenciadas directamente dependiendo de su dominio.
En DDD, este tipo de escenario se maneja con una capa anticorrupción. Lo que esto implica básicamente es que encapsulas la API de terceros detrás de un repositorio o servicio de dominio. Creas un modelo local de la API de terceros que luego puede integrarse con el resto de tu capa de dominio.

Servidores de nombres de carga

Si la lógica de mi modelo de dominio depende de un componente de terceros o de alguna librería/gestor .dll propio, ¿es aceptable crear esta dependencia? Obviamente, no tengo ninguna dependencia de las capas de fachada o de persistencia de mi capa de dominio, pero tenía curiosidad por saber si los otros tipos de dependencias rompen alguna regla de DDD.
Sin embargo, creo que algunas librerías de terceros pueden ser referenciadas directamente desde el código de tu dominio (si no, no podrías usar tipos incorporados de java/c# porque también pueden ser considerados de terceros). Estas son las bibliotecas que no tienen ninguna de las características anteriores, noda-time por ejemplo. También puedo ver como algunas bibliotecas de matemáticas o de colecciones pueden ser referenciadas directamente dependiendo de su dominio.
En DDD, este tipo de escenario se maneja con una capa anticorrupción. Lo que esto implica básicamente es que encapsulas la API de terceros detrás de un repositorio o servicio de dominio. Creas un modelo local de la API de terceros que luego puede integrarse con el resto de tu capa de dominio.

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad