Trenca les Dependències Ocultes per a un Codi Més Net
Resum: Reemplaçar les variables globals amb injecció de dependències millora la capacitat de prova i redueix l'acoblament.
Problemes que resol:
- Dependències ocultes
- Alt acoblament
- Dificultats en proves
- Problemes de mantenibilitat
- Ús indegut del patró Singleton
Passos per millorar el codi:
- Identificar variables globals usades al codi.
- Crear una abstracció que encapsuli aquestes variables.
- Passar les dependències explícitament mitjançant paràmetres o constructors.
- Refactoritzar el codi existent per adoptar la nova estructura amb injecció de dependències.
- Eliminar les declaracions originals de variables globals.
Exemple abans de refactorització:
// Variable global que emmagatzema la configuració de l'API
const globalConfig = { apiUrl: https://api.severance.com };
function fetchOuties() {
return fetch(`${globalConfig.apiUrl}/outies`);
// globalConfig no es passa com a paràmetre
}
Exemple després de refactorització:
function fetchOuties(parameterConfig) {
return fetch(`${parameterConfig.apiUrl}/outies`);
}
const applicationConfig = { apiUrl: https://api.severance.com };
fetchOuties(applicationConfig);
Millorant encara més: Creant una classe de servei
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();
Avantatges d'aquest enfocament:
- Testabilitat: Es poden reemplaçar dependències en proves unitàries.
- Contractes explícits: Les funcions declaren quines dades necessiten.
- Escalabilitat: Facilita canvis en la configuració.
- Menys acoblament: Redueix la dependència entre mòduls.
Limitacions: Si s'usa en excés, la injecció pot generar un excés de paràmetres i dificultar la lectura del codi.
Sobre Q2BSTUDIO:
A Q2BSTUDIO, experts en desenvolupament i serveis tecnològics, implementem principis com la injecció de dependències per garantir programari escalable, mantenible i d'alta qualitat. Apliquem les millors pràctiques perquè els nostres clients obtinguin solucions tecnològiques eficients i fàcils d'evolucionar.




