“Patrones de Diseño: Entendiendo su Uso Práctico”

Hoy en día, una tendencia es utilizar y complicar proyectos de desarrollo sin entender el time value del desarrollo y el contexto o la realización de estos. Un breve ejemplo: crear un proyecto que solo vayan a usar 10 usuarios como máximo, pero que va a durar mucho tiempo, mínimo 6 años. ¿Por qué digo que lo complicamos? Configurar un frontend y backend. Al frontend le metemos ReactJS o cualquier otro de esos frameworks nuevos. Arquitectura limpia para el backend. Patrones de diseño: CQRS, Mediator, Repository, Unit Of Work.
Mientras que ese proyecto con un MVC puede salir muy rápido en C# apoyado de Blazor. Pero como nos gusta lo complicado, voy a dar a entender esos patrones en qué momentos usarlos.
Patrón adaptador: El patrón adaptador permite que dos objetos incompatibles trabajen juntos. Sirve como un puente entre objetos existentes. Imagina que tienes un cargador de teléfono con un enchufe tipo C y necesitas cargarlo, pero solo tienes USB. Un convertidor actúa como un adaptador para que puedas conectar el cargador al teléfono.
Patrón repositorio: Explicación: El patrón de repositorio proporciona una capa de abstracción sobre el almacenamiento de datos. Abstrae la forma en que los datos son almacenados y recuperados. Piensa en una biblioteca. El bibliotecario es como un repositorio que gestiona el acceso a los libros. Los usuarios de la biblioteca pueden solicitar libros al bibliotecario en lugar de ir directamente a los estantes.
Patrón unit of work: El patrón Unit of Work agrupa un conjunto de operaciones de base de datos en una transacción única. Garantiza que todas las operaciones tengan éxito o fallen como una unidad. Considera una aplicación de compra en línea. Cuando un usuario realiza una compra, puede haber varias operaciones de base de datos involucradas, como actualizar el inventario y registrar la transacción. El patrón Unit of Work asegura que todas estas operaciones sean exitosas o no ocurran en absoluto.
CQRS: Separa las operaciones de lectura (obtener información) de las operaciones de escritura (modificar información) en una aplicación. Como en una biblioteca, donde hay alguien especializado en ayudar a encontrar libros (lectura) y otra persona encargada de recibir y organizar nuevos libros (escritura).
En resumen, es importante considerar la simplicidad y eficiencia en el desarrollo de proyectos, evaluando cuidadosamente la necesidad y el contexto antes de complicar innecesariamente. Los patrones de diseño pueden ser herramientas poderosas cuando se aplican en los momentos adecuados, pero la clave está en saber cuándo y cómo utilizarlos para maximizar su valor.
Espero que estos consejos te sean útiles en tus futuros proyectos. No dudes en contactarme si necesitas más ayuda o asesoramiento. ¡Hasta pronto!
https://refactoring.guru/es/design-patterns/book
Coautor : chatGPT