Optimizando la arquitectura de servicios: Eliminando la duplicidad de lógica
En el proyecto devlog-ist/landing, nos hemos enfrentado recientemente a un desafío común: la duplicidad de lógica en nuestros servicios internos. Durante la revisión de código, se detectó que múltiples componentes estaban ejecutando procesos idénticos para manejar información proveniente de fuentes externas, lo que incrementaba innecesariamente la complejidad y el mantenimiento del sistema.
El problema: Lógica redundante
El objetivo era procesar los datos de las últimas contribuciones de un usuario desde la API de GitHub para mostrar un resumen en nuestra plataforma. Inicialmente, cada servicio implementaba una capa de procesamiento que incluía, de manera redundante, llamadas a modelos de inteligencia artificial para tareas que podían resolverse mediante un filtrado de datos eficiente y directo.
La solución: Separación de responsabilidades
Para mejorar la arquitectura, hemos decidido:
- Desacoplar la lógica de procesamiento: Separamos la responsabilidad de filtrar los datos de la lógica de presentación.
- Eliminar dependencias innecesarias: En lugar de invocar modelos de IA para tareas de formato, implementamos una capa de transformación de datos limpia que recibe el JSON crudo y lo estructura según nuestras necesidades de visualización.
- Centralizar el servicio de datos: Creamos un único punto de entrada para la integración con GitHub, asegurando que cualquier componente en la aplicación reciba la misma estructura de información procesada.
Este cambio no solo reduce la carga de procesamiento, sino que también facilita las pruebas unitarias y garantiza que nuestro componente de landing se mantenga ligero y eficiente.