Специализация
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 в телеграм
Что такое мемоизация и как она используется в Redux с помощью reselect?
Мемоизация — это техника оптимизации, при которой результаты функции сохраняются и используются повторно, если входные данные не изменились. В Redux мемоизация используется с помощью библиотеки reselect, которая позволяет кэшировать результаты селекторов и избежать их повторных вычислений. Это особенно полезно при работе с большими наборами данных, где вычисления могут быть дорогими.
Как использовать createSelector из reselect с RTK?
createSelector из библиотеки reselect позволяет создавать мемоизированные селекторы, которые эффективно извлекают и вычисляют данные из состояния Redux. С RTK он используется для создания производительных селекторов, которые избегают ненужных перерасчетов, если данные не изменились.
Reselect для чего?
Reselect — это библиотека для создания селекторов, которые извлекают и обрабатывают данные из состояния Redux. Она обеспечивает мемоизацию, что предотвращает ненужные вычисления, если входные данные не изменились. Это особенно полезно для сложных вычислений, которые зависят от состояния.
Как работает Select?
select в Go используется для выбора одного из доступных каналов, готовых к отправке или получению данных. Он блокируется до тех пор, пока хотя бы один канал не станет доступным, или выполняет случайный выбор, если доступно несколько каналов.
Нужно ли в GROUP BY указывать все поля из SELECT? Почему это поведение существует?
Да, в GROUP BY нужно указывать все неагрегированные поля из SELECT. Это правило существует потому, что GROUP BY группирует строки по указанным столбцам, и для каждого агрегирующего столбца (например, SUM, COUNT) должно быть ясно, к какой группе относится результат. Если не включить поле, SQL не сможет определить, какую группу использовать для отображения этого поля.
Что такое SELECT FOR UPDATE и как он помогает в решении проблем параллельного доступа?
Влияет ли количество полей в SELECT на производительность?
Есть ли разница между SELECT * и перечислением полей?
Как prefetch_related и select_related помогают избежать проблемы N+1?
В чём разница между select_related и prefetch_related?
Рейтинг:
1
Сложность:
8
SELECT FOR UPDATE блокирует выбранные строки от изменений другими транзакциями. Это полезно при реализации очередей задач или других сценариев, где важно гарантировать эксклюзивную работу с данными.
Рейтинг:
2
Сложность:
6
Да. Чем больше полей выбирается, тем больше объём данных нужно прочитать, передать по сети и обработать на клиенте. Особенно заметно при больших текстовых или бинарных полях. Выборка только необходимых столбцов снижает нагрузку на диск, память и сеть, ускоряя выполнение.
Рейтинг:
2
Сложность:
7
SELECT * возвращает все столбцы таблицы в их текущем порядке, а перечисление полей (SELECT id, name) явным образом указывает, какие именно столбцы нужны. Явный список полей снижает объём передаваемых данных и защищает от неожиданных изменений схемы при добавлении новых столбцов.
Рейтинг:
1
Сложность:
6
select_related загружает связанные данные одним JOIN-запросом, а prefetch_related делает отдельный запрос и кэширует результаты. Оба метода предотвращают множественные запросы при обращении к связанным объектам.
Рейтинг:
2
Сложность:
6
select_related использует SQL JOIN для выборки связанных объектов одного уровня (ForeignKey, OneToOne), а prefetch_related делает отдельный запрос и объединяет объекты в Python, подходит для отношений ManyToMany и обратных ForeignKey.
Рейтинг:
2
Сложность:
5
Рейтинг:
1
Сложность:
3
Рейтинг:
2
Сложность:
4
Рейтинг:
2
Сложность:
6
Рейтинг:
3
Сложность:
7