Refactorización 024 - Reemplazo de Variables Globales con Inyección de Dependencias

Mejora la calidad de tu código eliminando dependencias ocultas con inyección de dependencias. Reducir el acoplamiento y mejorar la testabilidad hará tu código más limpio y mantenible. ??

11 mar 2025 • 1 min read • Q2BSTUDIO Team

Empresa-Software-Apps

Rompe las Dependencias Ocultas para un Código Más Limpio

Resumen: Reemplazar las variables globales con inyección de dependencias mejora la capacidad de prueba y reduce el acoplamiento.

Problemas que resuelve:

  • Dependencias ocultas
  • Alto acoplamiento
  • Dificultades en pruebas
  • Problemas de mantenibilidad
  • Uso indebido del patrón Singleton

Pasos para mejorar el código:

  1. Identificar variables globales usadas en el código.
  2. Crear una abstracción que encapsule estas variables.
  3. Pasar las dependencias explícitamente mediante parámetros o constructores.
  4. Refactorizar el código existente para adoptar la nueva estructura con inyección de dependencias.
  5. Eliminar las declaraciones originales de variables globales.

Ejemplo antes de refactorización:

// Variable global que almacena la configuración de la API  
const globalConfig = { apiUrl: https://api.severance.com };  

function fetchOuties() {  
  return fetch(`${globalConfig.apiUrl}/outies`);  
  // globalConfig no se pasa como parámetro
}

Ejemplo después de refactorización:

function fetchOuties(parameterConfig) {  
  return fetch(`${parameterConfig.apiUrl}/outies`);  
}  

const applicationConfig = { apiUrl: https://api.severance.com };  

fetchOuties(applicationConfig); 

Mejorando aún más: Creando una clase de servicio

class ApiService {
  constructor(parameterConfig) {
    this.variableConfig = parameterConfig;
  }

  fetchOuties() {
    return fetch(`${this.variableConfig.apiUrl}/outies`);
  }
}

const apiService = 
  new ApiService({ apiUrl: https://api.severance.com });
apiService.fetchOuties();

Ventajas de este enfoque:

  • Testabilidad: Se pueden reemplazar dependencias en pruebas unitarias.
  • Contratos explícitos: Las funciones declaran qué datos necesitan.
  • Escalabilidad: Facilita cambios en la configuración.
  • Menos acoplamiento: Reduce la dependencia entre módulos.

Limitaciones: Si se usa en exceso, la inyección puede generar un exceso de parámetros y dificultar la lectura del código.

Sobre Q2BSTUDIO:

En Q2BSTUDIO, expertos en desarrollo y servicios tecnológicos, implementamos principios como la inyección de dependencias para garantizar software escalable, mantenible y de alta calidad. Aplicamos las mejores prácticas para que nuestros clientes obtengan soluciones tecnológicas eficientes y fáciles de evolucionar.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.