Sobes.tech
Middle

Milyen dependency injection (DI) eszközöket használsz a termelésben?

sobes.tech MI

Válasz az MI-től

A leggyakrabban használt eszközöm a GetIt és az injectable kombinációja.

A GetIt egy egyszerű Service Locator, amely könnyen integrálható más keretrendszerekkel. Szabványos módszereket kínál a szolgáltatások regisztrálására:

// Singleton regisztrálása
GetIt.instance.registerSingleton<ApiService>(ApiService());

// Gyár regisztrálása
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());

Az injectable egy kódgenerátor, amely lehetővé teszi osztályok annotálását és kód generálását a GetIt számára, jelentősen egyszerűsítve a függőség-injektálás folyamatát:

// Példa osztály annotálására a GetIt-hez injectable segítségével
@lazySingleton
class ApiService {}

// Parancs a GetIt kód generálásához
// flutter pub run build_runner build

Ezek az eszközök kombinációja lehetővé teszi, hogy kihasználjuk mind a Service Locator (a GetIt-ből), mind a Dependency Injection (az automatikus kódgenerálás révén a injectable-ből) előnyeit, így a DI a projektben kezelhetőbb és kevésbé hibára hajlamos.

Egyszerű esetekben vagy olyan projektekben is használtam, ahol már a Provider alapú állapotkezelés van alkalmazva, mivel az is szolgálhat DI-re. Azonban nagyobb vállalati alkalmazások esetén a GetIt/injectable párost részesítem előnyben.