Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Можете объяснить концепцию CSS box model (блочная модель)?
CSS box model - это основной концепт в CSS, описывающий как элементы на веб-странице представлены в виде прямоугольных блоков, состоящих из контента, отступов, границ и внутренних полей.
Есть четыре ViewModel, и нужно каждые 5 секунд подписываться на запрос из сети. Как это лучше организовать?
Лучше запускать единственный Flow или LiveData в одном ViewModel, который внутри viewModelScope с помощью flow {} и delay(5000) эмитит результат каждые пять секунд. Остальные три ViewModel могут делегировать подписку на общий источник данных (SharedFlow или отдельный синглтон-репозиторий), чтобы не создавать дубли HTTP-запросов и экономить ресурсы.
При повороте экрана нужно сохранить и изменить определённые данные в Presenter без ViewModel. На каком этапе жизненного цикла и как это сделать?
При повороте экрана Activity уничтожается и создаётся заново. В MVP можно сохранить данные в onSaveInstanceState(Bundle) Presenter-а через Bundle (через интерфейс Activity → Presenter) и восстановить в onCreate нового View, передав сохранившийся Bundle. Либо хранить Presenter с данными в setRetainInstance(true) у Fragment.
Как устроена связь View и ViewModel в MVVM?
В MVVM View подписывается на изменения состояния ViewModel. ViewModel не знает о существовании View и не управляет UI напрямую. Связь обычно реализуется через биндинги, замыкания или реактивные фреймворки. View только отображает текущее состояние. Это снижает связанность и упрощает тестирование.
Что такое Java Memory Model?
Java Memory Model описывает правила работы потоков с памятью.
Она определяет, когда изменения, сделанные одним потоком, становятся видимыми другим.
Также JMM задает гарантии упорядочивания операций.
Без понимания JMM невозможно писать корректный многопоточный код.
Что такое happens-before в Java Memory Model?
Как работает branching-model во frontend-проектах?
Когда стоит использовать ModelViewSet?
Рейтинг:
5
Сложность:
8
happens-before — это отношение порядка между операциями в Java Memory Model.
Если одна операция happens-before другой, то её результаты гарантированно видны.
Это не обязательно реальный порядок выполнения.
Отношение используется JVM для определения корректности многопоточных программ.
Без него невозможно формально рассуждать о потокобезопасности.
Рейтинг:
4
Сложность:
6
Branching-model определяет правила создания и слияния веток. Он помогает нескольким разработчикам работать параллельно. Чаще всего используются feature-ветки и основные ветки для релизов. Это снижает количество конфликтов и упрощает контроль качества. Модель выбирается под размер команды и частоту релизов.
Рейтинг:
5
Сложность:
4
ModelViewSet стоит использовать, когда требуется стандартный CRUD API для модели и логика операций типовая. Он автоматически реализует основные методы и хорошо работает с router. Если бизнес-логика сильно отличается от стандартного CRUD, лучше использовать APIView или GenericAPIView. ModelViewSet ускоряет разработку, но снижает явный контроль.
Рейтинг:
2
Сложность:
3
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
7