Содержание:
Добрый день!)
Я очень рад пройти во второй тур, спасибо за такую возможность!)
Хотелось написать в удобочитаемом формате, а вышел лонгрид (надеюсь на ваше терпение).
Опиши идеальную, по твоему мнению, архитектуру приложения (сетевое взаимодействие, взаимодействие с моделью данных, UI).
Архитектура приложения, по-моему, самая интересная и сложная задачка.
От этого зависит многое: как легко будет масштабировать приложение, как легко добавлять фичи и, естественно, настроения разработчиков от процесса 🥳.
Модульность
Идеальной, для меня, кажется модульное приложение.
Модульность ускоряет сборку, уменьшает связанность, увеличивает параллелизм разработки, в общем ♥️.
Критерии архитектуры
Архитектура приложения должна быть (как из Чистой архитектуры цитата):
- UI — максимально простой, никакой логики:
- Предоставляет данные пользователю (виджеты, анимации, фрагменты)
- Отправляет от пользователя команды
- Отображает пользователю изменения данных
- Бизнес-логика зависит только от абстракций
- Сама архитектура приложения не зависит от библиотек/фреймворков (сюда можно упомянуть rxJava, которая расползается по всему приложению, но это цена, которую можно заплатить 💸).
- Приложение должно быть тестируемым (сюда можно отнести DI, принципы SOLID и слоистость архитектуры)