Как стать автором
Обновить

Библиотека Scout — быстрый и безопасный DI на Kotlin

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров8.9K
Всего голосов 31: ↑30 и ↓1+35
Комментарии13

Комментарии 13

Спасибо за классную техническую статью - описание подходов к выявлению проблем и их решению зашли даже больше, чем сами решения (я не Android разработчик). Единственный вопрос, который возник после прочтения - что в итоге с пуфиками?

Пуфики все еще актуальны. Мы сидим на них и выпиливаем другие библиотеки, которые используют kapt :)

Спаисбо, интересная статья.
Вопрос почмеу у вас не работала инкрементальная сборка или 25 минут это процесс полного пересбора?

Исторически application модуль Маркета был довольно большим и изменение в любом из на 50 модулей (тогда их было всего 50) приводило к пересборке большей части кода (и перегенерации в том числе)

Можно ли написать DI библиотеку так, что бы она в debug резолвила зависимости в рантайме (как scout) , а в release во время компиляции (как dagger)?

Это решит проблему долгих сборок для разработчиков и в тоже время конечные пользователи не будут затронуты, так как каждый пользователь не будет платить за удобство разработчика

В библиотеке есть поддержка инжектов в поля классов через делегаты, но публичный интерфейс доступа к графу все равно требует явной декларации (компонента). Для инжектов в поля в библиотеке есть тип Injector, который является компонентом с единственным публичным методом

Как показано в докладе, можно получить валидацию графа в compile time написав не сильно больше кода, чем при использовании dagger без дополнительной кодогенерации. Мой вопрос был, не рассматривали ли вы такой подход, прежде чем окунуться в написание библиотеки?

Кажется, такой подход прошел мимо нас. Возможно, у нас была интоксикация compile-time решениями

Почему не стали делать библиотеку мультиплатформенной?

Мы делали библиотеку для приложения Маркета и только спустя два года решили, что ее нужно выложить. Мультиплатформа напрашивается, но до момента публикации кода запроса на нее не было :)

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

Как iOS разработчик вообще не понимаю любовь к даггеру. Когда делал свою DI либу я многие языки рассматривал и как у них реализованы DI либы... И даггер в списке был на последнем месте по удобству и понятности... В. Списке лучших оказался autofac из C#.

Это из той серии когда модный дизайнер сказал что эта одежда будет модой X года, и подумаешь она не удобная - зато модная.

За статью спасибо, ещё раз убедился, что не только мне dagger не нравится ?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий