Специализация
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 в телеграм
Почему Хук useMemo в React не используется для замены shouldComponentUpdate?
Хук useMemo используется для оптимизации производительности, запоминая результат вычисления и избегая его повторного выполнения при неизменных зависимостях. Однако он не предназначен для управления рендерингом компонентов, как это делает shouldComponentUpdate, который отвечает за решение о необходимости обновления компонента.
В чем разница между FixedUpdate и Update в Unity, и когда использовать каждую из функций?
FixedUpdate используется для физики и выполняется через фиксированные интервалы времени, независимо от кадровой частоты. Update вызывается каждый кадр и используется для обновлений, не связанных с физикой, таких как обработка ввода или обновление поведения AI.
Что быстрее — CREATE или UPDATE? Почему?
По умолчанию CREATE (вставка новой записи) быстрее, чем UPDATE, так как UPDATE требует поиска существующей строки, блокировки, чтения старых данных и записи изменений, а затем возможного перемещения из‑за изменений размера. INSERT просто добавляет в конец таблицы и обновляет индексы.
Что такое SELECT FOR UPDATE и как он помогает в решении проблем параллельного доступа?
SELECT FOR UPDATE блокирует выбранные строки от изменений другими транзакциями. Это полезно при реализации очередей задач или других сценариев, где важно гарантировать эксклюзивную работу с данными.
Как на самом деле выполняется оператор UPDATE в PostgreSQL?
Оператор UPDATE в PostgreSQL на самом деле не изменяет существующие строки, а создает новые версии строк (tuple) и помечает старые как удаленные. Это реализация механизма Multi-Version Concurrency Control (MVCC). Старая версия строки сохраняется до тех пор, пока не будет удалена процессом vacuum. Каждая новая версия получает новый xmin (идентификатор транзакции создания). Такой подход позволяет обеспечить изоляцию транзакций и возможность чтения неподтвержденных данных.
Почему плохо привязывать бизнес-логику к Update-циклу Unity?
Каков порядок вызовов в жизненном цикле MonoBehaviour и что происходит при долгом Update?
Как обеспечить неизменяемость объекта с изменяемыми полями (например, Date)?
Как индексы влияют на INSERT и UPDATE?
Почему SimpleDateFormat не потокобезопасен?
Рейтинг:
5
Сложность:
5
Привязка бизнес-логики к Update делает её зависимой от частоты кадров (FPS). На медленных устройствах игра будет работать медленнее, а на быстрых — слишком быстро, что ломает баланс. Такой код сложно тестировать и отлаживать, так как его поведение нестабильно и недетерминировано.
Рейтинг:
5
Сложность:
5
Unity вызывает методы MonoBehaviour в строго определённом порядке: Awake → OnEnable → Start → Update → LateUpdate → OnDisable → OnDestroy. Если Update выполняется слишком долго, кадр растягивается, FPS падает, physics может десинхронизироваться, а входные события начнут запаздывать. Долгий Update блокирует весь главный поток, поэтому важно оптимизировать логику и избегать тяжёлых операций в каждом кадре.
Рейтинг:
4
Сложность:
6
Неизменяемость достигается за счет запрета изменения внутреннего состояния. Для изменяемых полей используется защитное копирование. Объект не должен предоставлять сеттеры. При доступе к полям возвращаются копии, а не оригиналы. Это предотвращает внешнее влияние на состояние объекта.
Рейтинг:
4
Сложность:
6
Индексы ускоряют чтение, но замедляют операции записи.
При INSERT и UPDATE индекс нужно обновлять.
Чем больше индексов у таблицы, тем выше накладные расходы.
Это влияет на производительность записи.
Индексы должны добавляться осознанно.
Рейтинг:
5
Сложность:
6
SimpleDateFormat хранит изменяемое состояние.
При форматировании и парсинге это состояние изменяется.
При использовании из нескольких потоков возникают гонки данных.
Это приводит к некорректным результатам или исключениям.
Класс не содержит внутренней синхронизации.
Рейтинг:
5
Сложность:
7
Рейтинг:
5
Сложность:
1
Рейтинг:
2
Сложность:
6
Рейтинг:
1
Сложность:
8
Рейтинг:
3
Сложность:
8