Специализация
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 в телеграм
Что такое висячий указатель (dangling pointer) в C?
Висячий указатель — это указатель, который указывает на освобождённую или несуществующую память. Использование такого указателя может привести к неопределённому поведению.
Как связаны точки (points) и пиксели (pixels) на экране? Как рассчитать масштаб (scale) устройства?
Points — логические единицы интерфейса, а pixels — физические точки на экране. Масштаб (scale) определяет, сколько пикселей приходится на один point. Получить его можно через UIScreen.main.scale, обычно 1×, 2× или 3×.
Почему существуют atomic.Value и atomic.Pointer?
atomic.Value и atomic.Pointer позволяют безопасно обновлять данные между потоками без блокировок. Они работают быстрее мьютексов, но поддерживают только определённые типы.
Как можно организовать загрузку большого словаря в память приложения и обработку запросов к нему через один endpoint по ключу?
Загрузите словарь при старте приложения (например, в startup событии FastAPI) и сохраните в памяти как глобальную переменную или в объекте приложения. Для доступа создайте endpoint, который будет искать значение по ключу. Можно использовать кэширование для ускорения.
Почему автовайринг через конструктор предпочтительнее автовайринга полей? (риск NullPointerException)
Автовайринг через конструктор предпочтителен, потому что:
Гарантирует, что объект создается только с валидными зависимостями (нет NullPointerException).
Упрощает тестирование, так как зависимости можно явно передать в конструктор.
Делает код более прозрачным, так как все обязательные зависимости видны сразу.
Чем отличаются методы с value receiver и pointer receiver?
Чем hitTest(_:with:) отличается от point(inside:with:)?
Что такое pointcut и join point?
Почему существуют атомарные операции над указателями (atomic pointer)?
Как реализовать API с одним endpoint, который внутри инициирует цепочку сервисных вызовов?
Рейтинг:
3
Сложность:
5
Value receiver получает копию значения, pointer receiver — указатель на оригинал, позволяя изменять поля и избегать лишних копирований.
Рейтинг:
5
Сложность:
8
point(inside:with:) отвечает только на вопрос, попадает ли точка внутрь view. hitTest(_:with:) определяет, какая именно view должна обработать событие. Первый метод — это фильтр, второй — механизм поиска. Их часто переопределяют вместе, но назначение у них принципиально разное.
Рейтинг:
4
Сложность:
7
Join point — это конкретная точка выполнения программы, например вызов метода.
Pointcut — это выражение, которое выбирает набор join point’ов.
Join point отвечает на вопрос «где мы сейчас», а pointcut — «какие точки нас интересуют».
Они используются вместе для применения аспектов.
Это базовые понятия AOP.
Рейтинг:
4
Сложность:
8
Атомарные операции над указателями нужны, чтобы безопасно менять ссылки между горутинами без использования mutex. Они гарантируют, что чтение и запись произойдут как единая неделимая операция. Это важно при реализации lock-free структур и кэширования. Без атомарности возникают race condition и повреждение данных.
Рейтинг:
5
Сложность:
7
Один endpoint обычно выступает в роли оркестратора. Он принимает запрос, валидирует данные и запускает цепочку вызовов других сервисов. Часть шагов может быть синхронной, часть — асинхронной. Важно контролировать ошибки, таймауты и откаты. Часто используют Saga-подход или фоновые задачи.
Рейтинг:
1
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
6
Рейтинг:
1
Сложность:
5