Skip to content

Design Patterns

Este documento detalla los patrones de diseño utilizados en el microservicio de forklift, explicando cómo y dónde se aplican, así como los beneficios que aportan.

El patrón Either es ampliamente utilizado en el microservicio para el manejo de errores y resultados. Se implementa a través de la biblioteca @justomx/either, que proporciona una estructura de datos que puede contener un valor de éxito (Right) o un valor de error (Left).

  • Manejo explícito de errores sin necesidad de excepciones
  • Código más predecible y fácil de seguir
  • Fuerza al desarrollador a considerar tanto el caso de éxito como el de error

El patrón Adaptador se utiliza en la capa de infraestructura para adaptar servicios externos a las interfaces definidas en el dominio. Esto permite que la lógica de negocio sea independiente de las implementaciones concretas.

  • Desacoplamiento entre la lógica de negocio y los detalles de implementación
  • Facilita el cambio de implementaciones sin afectar al dominio
  • Mejora la testeabilidad al permitir mockear las implementaciones

El patrón Repositorio se utiliza para abstraer el acceso a datos, proporcionando una interfaz que simula una colección de objetos en memoria.

  • Abstracción del mecanismo de persistencia
  • Facilita el cambio de tecnología de base de datos
  • Mejora la testeabilidad al permitir mockear los repositorios

El patrón Fábrica se utiliza para crear objetos complejos, ocultando los detalles de su construcción.

  • Encapsula la lógica de creación de objetos complejos
  • Facilita la configuración centralizada
  • Mejora la legibilidad del código

Aunque no se encuentra una implementación explícita del patrón Observador en el código fuente, el sistema utiliza mecanismos de logging y métricas que siguen principios similares, donde ciertos eventos del sistema son registrados o medidos.

  • Desacoplamiento entre los componentes que generan eventos y los que los procesan
  • Facilita la adición de nuevos observadores sin modificar el código existente
  • Mejora la observabilidad del sistema

El patrón Objeto de Valor se utiliza para representar conceptos del dominio que se identifican por su valor y no por su identidad.

  • Encapsula reglas de validación y comportamiento
  • Mejora la expresividad del código
  • Previene estados inválidos