Script de Transacción en Arquitectura de Software
Clase 12 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
08:37 min - 12

Script de Transacción en Arquitectura de Software
Viendo ahora - 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
¿Qué es un script de transacción?
El script de transacción es un enfoque organizativo que se centra en estructurar la lógica de negocio en procedimientos específicos. Esta metodología está descrita en profundidad en el libro "Patterns of Enterprise Application Architecture" de Martin Fowler. Este enfoque busca que cada procedimiento maneje una única solicitud de la capa externa, por ejemplo, registrar una factura. En este caso, cada solicitud se convierte en una operación aislada y transaccional.
¿Cómo se organizan los procedimientos?
Existen dos maneras de estructurar los procedimientos en el script de transacción:
-
Jerarquía de Herencia: Se crea una clase base o interfaz denominada
TransactionScriptque contiene un método, comúnmente llamadorun,ejecutaroexecute. Cada procedimiento se desarrollará en su propia clase derivada. Este enfoque promueve la claridad de las responsabilidades de cada clase. -
Servicio Único con Múltiples Operaciones: En esta estructura, un único servicio agrupa diversas operaciones relacionadas, organizándose por funcionalidad o tipo de dato. Aunque este método es efectivo para aplicaciones pequeñas, puede presentar problemas de cohesión y crecimiento descontrolado de las clases.
Exploración del código del script de transacción
El ejemplo práctico de un script de transacción se desarrolla con Java, usando Maven para gestionar las dependencias. Este script se focaliza en un sistema para gestionar vuelos, ilustrando elementos de la arquitectura limpia.
Componentes clave
-
Dominio y capa externa: El sistema se estructura en capas, con un dominio que contiene el modelo de dominio y la aplicación, y una capa externa que incluye una consola y las funcionalidades de persistencia.
-
Servicio de aplicación: Este servicio contiene las implementaciones del script de transacción. Aquí se aseguran operaciones como buscar vuelos, con validaciones de datos de entrada y búsqueda en un repositorio para obtener información.
public class FlightService { private FlightRepository flightRepository; public Flight searchFlights(String origin, String destination, Date date, int passengers) { // Validaciones de entrada de datos List<Flight> availableFlights = flightRepository.findFlights(origin, destination, date, passengers); // Procesamiento y retorno de resultados return availableFlights; } } -
Objetos POJO: Las entidades, como
Flight, son objetos Java simples, denominados POJOs, que contienen atributos y métodosgetyset.
Ventajas y limitaciones del script de transacción
El script de transacción es ideal para aplicaciones con lógica de negocio sencilla. Sin embargo, a medida que la aplicación crece, surgen ciertas desventajas:
-
Dificultades de mantenimiento: Con el incremento de la lógica de negocio, los procedimientos se tornan extensos y complicados, erosionando la ventaja de un dominio bien organizado.
-
Falta de aprovechamiento de POO: El script de transacción separa la operación y los datos, lo que impide el aprovechamiento integral del paradigma de programación orientada a objetos. En lugar de combinar operaciones con datos, se limita a seguir instrucciones procedimentales.
Cuándo utilizar el script de transacción
Este enfoque es adecuado para aplicaciones sencillas con lógica de negocio elemental. Sin embargo, no se recomienda para arquitecturas limpias que persiguen un dominio extendido y bien organizado, ya que el script puede complicar el mantenimiento y evolución del software.
Próximos pasos
A continuación, se explorará la inyección de dependencias, con el objetivo de clarificar cómo el script de transacción gestiona la persistencia y mejora la modularidad del código.
Este abordaje metodológico, junto con una adecuada gestión de las dependencias, puede ofrecer una mayor claridad y cohesión en la estructura de una aplicación, a pesar de las complejidades inherentes a su implementación.