Errores Comunes al Manejar la Lógica de Dominio en Sistemas de Información
Clase 11 de 24 • Curso de Arquitecturas Limpias para Desarrollo de Software
Contenido del curso
Conceptos detrás de las Arquitecturas Limpias
Arquitecturas de referencia
- 6

Arquitectura Hexagonal: Puertos y Adaptadores en Desarrollo de Software
07:00 min - 7

Arquitectura Onion: Diseño y Aplicación en Desarrollo de Software
05:09 min - 8

Desglose de Capas en Clean Architecture
03:20 min - 9

Implementación de Arquitectura Limpia en Empresas Reales
10:06 min - 10

Conclusiones sobre Arquitectura de Software Adaptativa
04:00 min
Dominio de una arquitectura
- 11

Errores Comunes al Manejar la Lógica de Dominio en Sistemas de Información
Viendo ahora - 12

Script de Transacción en Arquitectura de Software
08:26 min - 13

Inyección de Dependencias e Inversión de Control en Java
07:40 min - 14

Modelos de Dominio en Programación Orientada a Objetos
06:43 min - 15

Capa de Servicios y Fachada en la Arquitectura de Software
04:19 min - 16

Casos de Uso en Clean Architecture con C#
07:08 min - 17

Implementación de CQRS en Arquitecturas Limpias con C#
12:00 min
Capa externa
- 18

Acceso a Datos en Arquitectura Limpia: Fuentes y Pruebas Efectivas
06:03 min - 19

Implementación del Patrón Repository en Arquitectura de Software
08:17 min - 20

Implementación de APIs y Web con Spring Boot en Arquitectura Limpia
05:28 min - 21

Implementación de Integraciones con el Patrón Adapter en Arquitectura Limpia
09:06 min - 22

Pruebas Unitarias en Arquitecturas Limpias con Java y Spring Boot
05:39 min - 23

Pruebas de Integración con Dobles de Prueba en Aplicaciones
09:26 min
Cierre
¿Por qué es fundamental el dominio en el desarrollo de sistemas?
El dominio es el corazón de cualquier sistema. Se podría decir que es la razón misma de su existencia ya que encapsula la lógica de negocio. Es el área en la que despliega sus verdaderas funcionalidades y donde se deciden las actividades esenciales, como calcular descuentos o verificar inventarios, aplicables independientemente de las tecnologías empleadas. A través de este módulo, nos enfocaremos en proteger y estructurar este componente vital.
¿Qué prácticas deben evitarse al trabajar con dominios?
Mantener el dominio libre de referencias externas garantiza su solidez. A continuación, se presentan errores comunes que se deben evitar:
- Referencias directas a capas externas: Evitar "importar" elementos externos directamente al dominio.
// Código incorrecto
import { EmailService } from 'external-layer'
class DomainService {
sendEmail() {
EmailService.send();
}
}
- Uso de terminología externa: El nombrar elementos en el dominio con terminología de infraestructura puede vulnerarlo.
// Código incorrecto
function notificarUsuario() {
const enviarSMS = true; // Supone la utilización de SMS, detalle que pertenece a infraestructura
}
-
Retorno de datos específicos de interfaz: No devolver datos en formatos ligados a interfaces como HTML. Deberíamos devolver datos en formatos más universales como booleanos o enumeraciones.
-
Filtración de lógica de negocio hacia la interfaz: Validaciones específicas de negocio deben residir en el dominio para asegurar la reutilización y evitar dependencias directas con la capa de presentación.
¿Cómo podemos organizar efectivamente el dominio?
Existen múltiples aproximaciones para organizar el dominio, cada una con sus propias características y aplicaciones. Aquí algunas metodologías listas para explorar más adelante:
-
Script de transacción: Una técnica clásica que permite agrupar las instrucciones necesarias para completar una transacción de negocio.
-
Modelos de dominio orientados a objetos: Aprovechan las ventajas del paradigma orientado a objetos, permitiendo una representación robusta del dominio.
-
Capa de servicios: Funciona como un complemento al modelo de dominio, facilitando la ejecución de operaciones más complejas con el sistema.
-
Casos de uso: Estructuran funcionalidades de dominio enfocándose en escenarios específicos, proporcionando una vista clara sobre las operaciones que se realizan en el sistema.
-
CQRS (Command Query Responsibility Segregation): Separa las responsabilidades de consulta y comando del sistema, adaptándose a arquitecturas limpias.
Explorar y comprender estas diferentes formas de organizar el dominio garantiza que mantengamos la lógica de negocio encapsulada de manera efectiva, asegurando la escalabilidad y cohesión del sistema.
La organización adecuada del dominio no solo mejora la eficiencia sino que también fomenta la adaptación y evolución del sistema a medida que cambian las necesidades del negocio. Así que, ¡continúa profundizando en estas técnicas y mantén tu dominio sólido y estructurado!