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 de lectura • Equip Q2BSTUDIO

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.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.