POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

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

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

Publicado el 11/03/2025

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.

Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Enviado correctamente.

Gracias por confiar en Q2BStudio