Milliseid sõltuvuste süstimise (DI) tööriistu kasutate tootmises?
sobes.tech AI
Vastus AI-lt
Kõige sagedamini kasutan GetIt-d koos injectable-ga.
GetIt on lihtne Teenuste Otsija, mis hõlpsasti integreerub teiste raamistikudega. See pakub standardmeetodeid teenuste registreerimiseks:
// Singletoni registreerimine
GetIt.instance.registerSingleton<ApiService>(ApiService());
// Fabriku registreerimine
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());
injectable on koodigeneraator, mis võimaldab märkida klasse ja genereerida koodi GetIt jaoks, oluliselt lihtsustades sõltuvuste sisestamise protsessi:
// Näide klassi märgistamisest `GetIt` jaoks `injectable`-i abil
@lazySingleton
class ApiService {}
// Käsk `GetIt` koodi genereerimiseks
// flutter pub run build_runner build
Nende tööriistade kombinatsioon võimaldab kasutada nii Service Locator-i (kust GetIt), kui ka Dependency Injection-i (automaatse koodi genereerimise kaudu injectable-i), muutes DI projektis paremini hallatavaks ja vähem vigadele kalduvaks.
Olen kasutanud ka Provider-d lihtsate juhtumite või projektides, kus juba kasutatakse oleku haldamist Provider-i põhjal, kuna see võib samuti teenida DI eesmärgil. Kuid suuremate ettevõtlusrakenduste puhul eelistan GetIt/injectable paari.