Sobes.tech
Middle

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.