Есть ли вопросы по масштабированию технических подходов в архитектуре приложения
Что проверяют
Вопрос обычно звучит в конце технической части и проверяет, думаете ли вы о том, как архитектура переживёт рост кода, команды и числа фич. Если это приглашение задать вопросы, «нет вопросов» считывается как равнодушие. Если просят рассказать самому, следом спросят, как бы вы разбили проект на модули.
Как отвечать
Если слово за вами, задайте два-три вопроса, которые выдают опыт:
- модули: сколько их и как разделены, по фичам или по слоям, делится ли фича на
apiиimpl; - сборка: сколько идёт чистая и инкрементальная, включены ли build cache и configuration cache, есть ли convention plugins в
build-logicи version catalog; - связность: как устроены DI (Hilt, Dagger, Koin) и навигация между фичами, которые друг о друге не знают;
- UI: какая доля экранов на Compose и есть ли общая дизайн-система.
Если просят рассказать о своём подходе, говорите о направлениях роста, а не о списке библиотек:
- код: модули по фичам с общими
core-модулями, связь через интерфейсы,implementationвместоapi, чтобы правка в одном месте не пересобирала весь проект; - состояние: однонаправленный поток данных,
ViewModelсоStateFlow, единый подход к загрузке и ошибкам во всех фичах; - данные: репозитории, кеш в Room, Paging 3 для больших списков, офлайн-сценарии;
- команда: владельцы модулей,
CODEOWNERS, Android Lint и Detekt в CI, единые шаблоны фич.
Хорошо сослаться на открытый пример Google Now in Android и честно назвать цену: модульность окупается с ростом команды, а на приложении из десяти экранов и двух разработчиков это лишняя церемония.
Где спотыкаются
Отвечают «вопросов нет». На этом этапе это упущенный шанс показать уровень и заодно узнать, в какой код вы идёте.
Перечисляют Retrofit, LiveData и корутины как «масштабирование». Библиотеки не решают проблему роста, её решают границы модулей и правила зависимостей.
Предлагают модульность и Clean Architecture с максимумом слоёв для любого проекта и не называют порога, после которого это начинает окупаться.