No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Detalles sobre el dominio

11/24
Recursos

Aportes 4

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Detalles sobre el dominio

El dominio es la raz贸n de ser del sistema.

Tiene varios nombres:

  • L贸gica de negocio.
  • L贸gica de dominio.
  • Negocio.

鈥淓l dominio involucra lo que debe hacer el negocio, haya o no sistemas de informaci贸n鈥.

Ejemplo: Un sistema de supermercado.

<h5>驴Qu茅 corresponde al dominio?</h5>
  • Calcular descuentos.
  • Verificar inventario.
<h5>驴Qu茅 no corresponde al dominio?</h5>
  • Si los empleados usan una aplicaci贸n web o una consola para procesar una compra.
  • Si los empleados tienen lectores de c贸digos de barras o no.

Situaciones a evitar con el dominio

  • Referenciar la capa externa desde el dominio.

    import Correo from 'external';
    
    const Servicio = () => {};
    
  • Mencionar elementos de la capa externa.

    function notificarUsuario() {
    	let enviarSMS = true;
    	// ...
    }
    
  • Retornar datos con un formato espec铆fico.

    return '<span>Cliente ' + 'no existe</span>';
    
  • Permitir que la l贸gica de negocio se filtre.

    • Se tiene un bot贸n 鈥淕uardar usuario鈥 en un formulario y en el manejador de evento de click pueden ocurrir cosas como:
      • Validar campos del formulario.
      • Validar si el usuario existe.
      • Decide si insertar el usuario o actualizarlo.

Formas de organizar el dominio

  • Script de transacci贸n.
  • Modelo de dominio.
  • Capa de servicios.
  • Casos de uso.
  • CQRS.

馃幆Key takeaways

Recuerda que

  • El dominio es el elemento central. Hay que cuidarlo mucho.
  • Cuando hablamos del dominio, nos referimos a la l贸gica del negocio.
  • El dominio es aquello que debe hacer el negocio, exista un sistema inform谩tico o no.
  • Debemos mantener fuera del dominio elementos cambiantes que no corresponden a la l贸gica (el tipo de aplicaci贸n, hardware)

馃檯馃徎 Evitemos

  • Referenciar la capa externa desde el dominio. Es decir no hay que usar o importar paquetes u otros elementos en el c贸digo referente al dominio
  • Mencionar elementos de capa externa. Hablamos de escribir c贸digo con consideraciones y terminolog铆a que solo se deber铆a conocer en la capa de arquitectura. No se debe asumir qu茅 tecnolog铆a, librer铆a, paquete o funci贸n se est谩 usando en las capas externas. El c贸digo del dominio debe ser agn贸stico.
  • Retornar datos con un formato espec铆fico de implementaci贸n. El dominio no debe encargarse de preparar los datos en un formato especial para que pueda usarse por el c贸digo de capas externas. Al hacer esto, el dominio queda atado (acoplado) a la forma en que se implementa (detalle de implementaci贸n) y complica la reutilizaci贸n (el dominio queda comprometido)
  • Filtraciones de la l贸gica. Aseg煤rate que la l贸gica de negocio no salga del dominio. Las capas externas no deber铆an encargarse de la l贸gica que debe hacer el dominio. En el caso de validaciones de campos, la UI puede encargarse de eso como apoyo de UX, pero deber铆an realizarse tambi茅n en el dominio ya que la responsabilidad es del dominio, mientras que la UI es un apoyo para que el usuario interact煤e f谩cilmente con las reglas de dominio que el sistema disponga.

馃梻 Podemos organizar el dominio con la ayuda de

  • Script de Transacci贸n
  • Modelo de Dominio
  • Capa de Servicios (complementa muy bien al modelo de dominio)
  • Casos de uso
  • CQRS

@Manuel en este video me parece interesante lo que hiciste, pero le dieras m谩s valor si explicaras como fuera la contraparte de cada ejemplo, en este caso lo que debe poner correctamente