TGViewer
Android Good Reads Android Good Reads @droidgr · 4.02K subscribers
Post #2183 3.4K
Все чаще мне попадаются статьи с отказом от DI фреймворков. Пока что не видел какого-либо жизнеспособного решения в продакшене без DI.
Автор одной из минималистичных DI библиотек - Magnet тоже предлагает отказаться от DI и использовать явные зависимости. И почему же?
👉 Это сложно
👉 Время сборки сильно вырастает
👉 Время холодного старта тоже увеличивается
👉 Часто обьекты графа остаются в памяти дольше чем нужно. Да, большинство команд просто плодит синглтоны в том или ином виде и инжектит их. Увы, это и правда плохой подход

Взамен предлагается подход, кратно увеличивающий количество обслуживающего кода, однако использующий ручное и явное внедрение зависимостей:

interface NetworkModule {
val httpClient: HttpClient

class Default : NetworkModule {
override val httpClient: HttpClient by lazy ...
}
}

interface DatabaseModule {
val database: Database

class Default : DatabaseModule {
override val database: Database by lazy ...
}
}

interface RssReaderModule {
fun fetchRss(): FetchRss

class Default(
private val networkModule: NetworkModule,
private val databaseModule: DatabaseModule,
) : UserModule {
override fun fetchRss(): FetchRss ...
}
}

Больше примеров внутри статьи

Таким образом, мы получим достаточно прозрачную систему внедрения зависимостей в проекте, где нет никакой магии и у нас в руках полный контроль над всеми обьектами, однако масштабируемость этого подхода вызывает вопросы. Что вы думаете про тренд отказа от DI?
  • 🔥 11
  • 👎 10
  • 🥴 8
  • 👍 6
  • 🤔 3
  • 😁 2
More from @droidgr
  1. Sep 30, 2026🏗 Строим мультиагентные системы для разработки на Podlodka AI Crew Инженерные задачи редк…
  2. Aug 6, 2026Если вам всё ещё интересна мобильная разработка, рекомендую подписаться на канал Kotlin Ad…
  3. Aug 4, 2026Post #2504
  4. Jul 26, 2026Как я играю в экосистему продуктов Наиболее близка мне сейчас тема ухода за животными. Я м…
  5. Jul 26, 2026Привет! Как вы могли заметить, я более не помогаю вести данный канал. Если вам понравилось…
  6. Jun 10, 2026Немного про продуктивность без AI. Старый добрый помодоро таймер, но ужесточенный трекинго…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →