Специализация
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 в телеграм
Как работают hidden classes и shape-based оптимизации в V8?
Hidden classes (скрытые классы) в V8 — это внутренние структуры, которые движок создает для представления форм объектов и их свойств. Когда вы создаете объекты с одинаковыми свойствами, V8 присваивает им один и тот же скрытый класс, что ускоряет доступ к их свойствам. Shape-based оптимизации позволяют движку быстро определять, где находятся свойства в памяти, что значительно уменьшает время доступа к ним.
Как работает git rebase?
git rebase перемещает одну ветку поверх другой, копируя коммиты и переписывая их базу. Он берёт набор коммитов, начиная с точки ветвления, и последовательно применяет их к новой базе, создавая новые коммиты с теми же изменениями, но другим родителем. Это позволяет получить линейную историю без merge-коммитов.
В чём разница между git rebase и git merge?
git merge сохраняет историю параллельных веток, создавая merge-коммит при расхождении, а git rebase переписывает историю: переносит коммиты одной ветки поверх другой, создавая линейную историю без merge-коммитов. Merge показывает фактические ветвления, rebase упрощает лог, но меняет SHA коммитов.
Как интегрировать с knowledge base?
Интегрировать документацию с базой знаний можно, сделав её частью общей структуры базы знаний компании, настроив перекрестные ссылки и используемые единые теги и категории. Проектная документация в Confluence должна быть организована в пространствах, которые логически связаны с другими разделами базы знаний, например, с политиками компании, описаниями бизнес-процессов и отчетами отделов.
Почему frame-based логика может быть проблемой?
Frame-based логика недетерминирована, так как её результат зависит от непредсказуемой и непостоянной частоты кадров. Это приводит к нестабильности на разных устройствах, сложностям с воспроизведением багов и проблемам при сетевой синхронизации в мультиплеерных играх, где все клиенты должны иметь идентичное состояние.
Что означают свойства CAP, BASE и ACID?
Что такое “database transaction boundary” и почему важно правильно выбирать границы транзакции?
Что безопаснее, если стенд отстал от прода и параллельно есть незавершенные задачи — merge или rebase?
Как смена сторонних сервисов (Firebase → собственные) влияет на клиентское приложение?
Чем async/await удобнее completion-based API?
Рейтинг:
5
Сложность:
6
ACID — набор строгих свойств транзакций реляционных БД. BASE — более гибкий подход, применяемый в NoSQL, где допускается временная несогласованность ради доступности. CAP — теорема, утверждающая, что распределённая система может гарантировать только две характеристики из трёх: консистентность, доступность и устойчивость к разделению сети. Эти модели помогают выбирать архитектуру хранения и обработки данных.
Рейтинг:
4
Сложность:
8
Граница транзакции — это отрезок кода, в котором данные читаются и изменяются атомарно. Если транзакция слишком длинная — растут блокировки и задержки; слишком короткая — нарушается консистентность. Нужно выбирать границы так, чтобы внутри транзакции были только операции, которые действительно должны быть атомарными.
Рейтинг:
4
Сложность:
5
В большинстве случаев безопаснее использовать merge, особенно если ветка уже используется другими разработчиками. Merge сохраняет историю коммитов и не переписывает её. Rebase переписывает историю и может привести к конфликтам или потере коммитов при неправильном использовании. Поэтому rebase лучше применять только в личных или ещё не опубликованных ветках.
Рейтинг:
4
Сложность:
7
Смена сторонних сервисов затрагивает не только SDK, но и архитектуру клиента. Часто меняются контракты, форматы данных и поведение API. Если зависимости не были изолированы, изменения распространяются по всему приложению. Грамотная абстракция снижает стоимость такой миграции.
Рейтинг:
5
Сложность:
7
async/await избавляет от вложенных completion-блоков. Код становится линейным и читаемым. Проще обрабатывать ошибки и отмену. Меньше шансов допустить retain cycle. Это снижает сложность и количество багов.
Рейтинг:
1
Сложность:
8
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5
Рейтинг:
4
Сложность:
6