И еще разок Dependency Injection vs Service Locator
Вместо того чтобы просто сравнивать либы, автор делит их на две категории:
Истинный Dependency Injection (Dagger, Hilt, Anvil, kotlin-inject, Metro)
👉 Строятся на Inversion of Control (IoC)
➕ Строгая валидация графа на этапе компиляции (если собралось — в проде из-за DI не упадет). Разрешение зависимостей за O(1) в рантайме. Идеально для тестов и больших команд
➖ Требуют больше явного кода от разработчика, замедляют сборку
Service Locators (Koin, Kodein, Spring DI, Compose CompositionLocals)
👉 Фокус на Developer Experience и скорости написания кода.
➕ Почти нулевой оверхед на сборку (все происходит в рантайме), минимум бойлерплейта
➖ Разрешение зависимостей за O(n), ошибки вылезают только при выполнении, а значит вылезает еще 1 категория багов на проде
Post #2449
2.87K