Специализация
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 в телеграм
Чем отличается enum от struct в Rust?
Struct используется для объединения данных, где все поля всегда присутствуют, что удобно для хранения сложных объектов с фиксированными свойствами. Enum, напротив, позволяет хранить одно значение из нескольких вариантов, что делает его полезным для представления состояния или выбора из нескольких опций.
В чем разница между init и constructor в Kotlin?
constructor создаёт экземпляр класса и принимает параметры, а блок init выполняет инициализацию, общую для всех конструкторов. Блок init всегда выполняется после вызова конструктора, что позволяет настроить объект или проверить параметры.
Что такое Infrastructure as Code (IaC)?
Infrastructure as Code (IaC) — это метод управления и развертывания IT-инфраструктуры с помощью кода, а не ручной настройки серверов. Это позволяет автоматизировать, версионировать и обеспечивать единообразие среды.
Что такое Structured Concurrency и как его нарушить?
Structured Concurrency – это подход, при котором корутины запускаются в определённой области (CoroutineScope), и их жизненный цикл связан с этой областью. Если область отменяется, отменяются и все её корутины.
Нарушить Structured Concurrency можно:
Запуская корутины в GlobalScope (они живут независимо от контекста).
Создавая корутины без явного Job или SupervisorJob.
Используя launch или async вне CoroutineScope.
Почему внедрение зависимостей через конструктор (@RequiredArgsConstructor) предпочтительнее, чем @Autowired в поле? Какие проблемы решает?
Внедрение через конструктор делает зависимости явными, класс — иммутабельным и упрощает тестирование. @Autowired в поле скрывает зависимости, усложняет мокирование и может привести к NullPointerException, если Spring не инициализирует поле.
Как обрабатываются стриминговые данные? (Spark Structured Streaming)
Что такое structured и unstructured concurrency?
Как реализовать глубокое копирование объекта без использования JSON.stringify и StructuredClone? Какие сложности могут возникнуть?
Что происходит при вызове методов (GetType, ToString) на struct?
В какой момент вызываются @PostConstruct и @PreDestroy?
Рейтинг:
1
Сложность:
9
Spark Structured Streaming обрабатывает данные микропакетами, используя ту же API, что и для пакетной обработки. Данные поступают из Kafka, Kinesis или файловой системы, обрабатываются через DataFrame API и выводятся в хранилища или дашборды. Гарантируется exactly-once семантика обработки.
Рейтинг:
2
Сложность:
7
Structured concurrency означает что задачи имеют чёткую иерархию и lifetime, привязанный к родительской задаче. Unstructured concurrency позволяет создавать независимые задачи, которые не привязаны к scope родителя. Structured подход безопаснее и проще для управления.
Рейтинг:
1
Сложность:
9
Глубокое копирование можно реализовать с помощью рекурсивной функции, которая вручную создает новый объект или массив и копирует все его свойства. Для каждого свойства, если оно является объектом, функция вызывает сама себя. Основные сложности: обработка циклических ссылок (когда объект ссылается сам на себя), копирование специальных объектов (как Date, Map, Set) и поддержка различных типов данных.
Рейтинг:
4
Сложность:
7
При вызове GetType() на структуре происходит боксинг, так как этот метод наследуется от object и не переопределен в структуре. При вызове ToString() боксинг не происходит, если структура переопределяет этот метод. Для GetType() структура упаковывается в object, чтобы получить доступ к методу. Для ToString() компилятор может вызвать переопределенную версию напрямую, избегая боксингa.
Рейтинг:
4
Сложность:
6
@PostConstruct вызывается после создания бина и внедрения всех зависимостей. @PreDestroy вызывается перед уничтожением бина и завершением контекста. Эти методы позволяют выполнить инициализацию и освобождение ресурсов. Они являются частью жизненного цикла бина.
Рейтинг:
2
Сложность:
5
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
8
Рейтинг:
2
Сложность:
6