Многомодульность зачем нужна?
С первых шагов в мобильной разработке каждый день слышал, что многомодульность — это топ, это канон
И этому веришь на подсознательном уровне. Много — круто, модули — круто, получается многомодульность тоже круто
А зачем она нужна?
....
Первое, что приходит в голову — ради чистой архитектуры, ради группировки кода, ради presentation, domain, data
Но кто мешает разделять код с помощью обычных папочек и пакетов?
Из них тоже можно построить древо любой сложности. Модуль в этом плане отличается только цветом иконки в студии
....
Второй ложный аргумент — в большом проекте у каждой команды должен быть свой модуль
Но право апрувить код настраивается на папки, git про модули ничего не знает
Единственное исключение здесь — модификатор internal в kotlin, позволяющий ограничить видимость кода на уровне модуля (команды)
....
На самом деле модуль нужен для системы сборки
Работает это примерно так:
• система сборки (обычно gradle) считает хэш от всех файлов в модуле
• считает хэш всех модулей / библиотек, от которых зависит модуль
• если хэши не изменились, то компилировать заново модуль не надо — можно взять его из кэша
соответственно, бить проект на модули нужно только для ускорения сборки
....
или есть еще причины?)
Post #110
3.3K