Выбор ответа Senior Архитектура: MVVM, MVI, Clean обновлено

Модули по фичам

Вопрос

Какой главный плюс разбиения проекта на feature-модули (:feature:feed, :feature:profile) с общими :core:*?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Изоляция и скорость сборки: меньше пересборки, параллельные модули, явные границы. Модульность в первую очередь про разработку: Gradle пересобирает только затронутые модули и их зависимых, сборка параллелится, команды меньше мешают друг другу, internal скрывает детали.

Варианты ответа

  1. Изоляция и скорость сборки: меньше пересборки, параллельные модули, явные границыправильный ответ
  2. Приложение быстрее запускается у пользователя, потому что модули грузятся лениво по мере нужды
  3. Меньше размер APK: R8 удаляет код неиспользуемых модулей целиком при сборке
  4. Можно не писать интеграционные тесты, раз границы модулей проверяет компилятор

Разбор

Модульность в первую очередь про разработку: Gradle пересобирает только затронутые модули и их зависимых, сборка параллелится, команды меньше мешают друг другу, internal скрывает детали. На скорость запуска и размер APK модули напрямую почти не влияют (если не делать dynamic feature). Тесты это не отменяет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.