Sobes.tech
Middle

Üretimde hangi bağımlılık enjeksiyonu (DI) araçlarını kullanıyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

En çok GetIt'yi injectable ile birlikte kullanıyorum.

GetIt, diğer çerçevelerle kolayca entegre olabilen basit bir Servis Bulucusudur. Servisleri kaydetmek için standart yöntemler sağlar:

// Singleton kaydı
GetIt.instance.registerSingleton<ApiService>(ApiService());

// Fabrika kaydı
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());

injectable, sınıfları notasyonlayıp GetIt için kod üretebilen bir kod jeneratörüdür ve bağımlılık enjeksiyonu sürecini önemli ölçüde basitleştirir:

// injectable ile GetIt için sınıf notasyonu örneği
@lazySingleton
class ApiService {}

// GetIt kodu üretmek için komut
// flutter pub run build_runner build

Bu araçların birleşimi, hem GetIt'den Service Locator avantajlarını hem de injectable ile otomatik kod üretimi sayesinde Dependency Injection (DI) avantajlarını sağlar ve projede DI'yi daha yönetilebilir ve hataya daha az açık hale getirir.

Ayrıca, basit durumlar veya zaten Provider tabanlı durum yönetimi kullanılan projelerde Provider kullanıyorum çünkü o da DI için kullanılabilir. Ancak, daha büyük kurumsal uygulamalar için GetIt/injectable kombinasyonunu tercih ediyorum.