Aké nástroje na injekciu závislostí (DI) používate v produkcii?
sobes.tech AI
Odpoveď od AI
Najčastejšie používam GetIt v kombinácii s injectable.
GetIt je jednoduchý Service Locator, ktorý sa ľahko integruje s inými frameworkmi. Poskytuje štandardné metódy na registráciu služieb:
// Registrácia singletonu
GetIt.instance.registerSingleton<ApiService>(ApiService());
// Registrácia továrne
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());
injectable je generátor kódu, ktorý umožňuje anotovať triedy a generovať kód pre GetIt, čo značne zjednodušuje proces vkladania závislostí:
// Príklad anotácie triedy pre GetIt s pomocou injectable
@lazySingleton
class ApiService {}
// Príkaz na generovanie kódu pre GetIt
// flutter pub run build_runner build
Kombinácia týchto nástrojov umožňuje využiť výhody ako Service Locator (z GetIt), tak Dependency Injection (vďaka automatickému generovaniu kódu s injectable), čím je DI v projekte lepšie spravovateľný a menej náchylný na chyby.
Používal som aj Provider pre jednoduché prípady alebo v projektoch, kde už existuje správa stavu na základe Provider, pretože môže slúžiť aj na DI. Avšak pre väčšie podnikové aplikácie dávam prednosť páru GetIt/injectable.