Специализация
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 в телеграм
Как оптимизировать прокрутку длинного списка (например, сообщений) в RecyclerView?
Для плавной прокрутки используйте RecyclerView с ViewHolder и включите setHasFixedSize(true). Загрузку данных и изображений выполняйте асинхронно (Glide/Picasso), кешируйте размеры через DiffUtil для обновлений и применяйте LinearLayoutManager с setItemViewCacheSize(). Избегайте вложенных слишком сложных макетов и применяйте Payload для частичных обновлений.
Как изменить анимацию вставки элементов в RecyclerView?
Нужно установить свой ItemAnimator или переопределить стандартный DefaultItemAnimator.
В чём сильные стороны RecyclerView?
Гибкость, повторное использование View, расширяемость.
Как RecyclerView рендерит элементы?
Создаёт и переиспользует ViewHolder при прокрутке.
Почему RecyclerView считается лучше ListView?
Он гибче, производительнее и масштабируемее.
В чём недостатки использования Unity lifecycle в бизнес-логике?
Как возникают retain cycle и как их находить?
Что такое retain cycle и как его избежать?
Где лучше отменять асинхронную загрузку — в prepareForReuse или в lifecycle UICollectionView?
Какие ключевые слова используются для разрыва retain cycle?
Рейтинг:
4
Сложность:
6
Использование Unity lifecycle (например, Update, Start) в бизнес-логике жестко привязывает её к движку, что усложняет тестирование, повторное использование кода и миграцию на другие технологии. Такой код нельзя проверить без запуска Unity, а его выполнение зависит от внутреннего цикла движка, что делает логику непредсказуемой и хрупкой.
Рейтинг:
5
Сложность:
9
Retain cycle возникает, когда два или более объекта удерживают друг друга сильными ссылками. В результате retain count никогда не становится равным нулю. Такие объекты не освобождаются, и возникает утечка памяти. Чаще всего retain cycle появляются в замыканиях, делегатах и взаимных ссылках между объектами.
Рейтинг:
5
Сложность:
7
Retain cycle возникает, когда два или более объекта удерживают друг друга сильными ссылками. В результате ARC не может освободить память. Чаще всего это происходит между view controller и замыканиями или делегатами. Для решения используют weak или unowned ссылки. Важно осознанно управлять владением объектами.
Рейтинг:
4
Сложность:
6
Чаще всего загрузку отменяют в prepareForReuse, так как это гарантированная точка переиспользования. Lifecycle методы UICollectionView дают больше контекста, но используются реже. prepareForReuse проще и надежнее для базовых случаев. Иногда применяют оба подхода. Выбор зависит от архитектуры.
Рейтинг:
5
Сложность:
5
Для разрыва retain cycle в Swift используются ключевые слова weak и unowned. Они позволяют ссылке не увеличивать счетчик сильных ссылок объекта. weak используется, когда объект может быть освобожден раньше. unowned — когда гарантируется, что объект живет дольше. Правильный выбор зависит от жизненного цикла объектов.
Рейтинг:
2
Сложность:
8
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
6