Подборка объединяет вопросы, отмеченные на этапах интервью в БКС инвестиции. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: refactoring, mobile, optimization.
Как распознать цикл сильных ссылок и предотвратить утечку памяти? управление памятью и работа сборщика мусора цикл сильных ссылок возникает, когда объекты напрямую удерживают ссылки друг на друга GC не освобождает…
SwiftUI — декларативный UI-фреймворк Apple Кастомный компонент представляет собой структуру, которая реализует протокол View Его интерфейс описывается внутри структуры с помощью композиции стандартных компонентов и…
WebSocket — протокол для двунаправленного обмена данными в реальном времени В браузере для этого применяется объект WebSocket API Соединение создается с помощью new WebSocket(url) — этот вызов открывает канал связи…
Оптимизация обработки изображений Применять ленивую загрузку (lazy loading), при которой загружаются только изображения, попадающие в область видимости Выбирать эффективные форматы сжатия — WebP и AVIF: они уменьшают…
Диспетчеризация методов в final-классе final-класс не допускает наследование, поэтому его методы нельзя переопределить реализация метода протокола вызывается статически, без виртуального вызова компилятор использует…
Сложность поиска элемента в Array без известного индекса Array представляет собой линейную коллекцию при известном индексе доступ выполняется за O(1) без индекса нужен последовательный перебор элементы проверяются по…
Swift, ARC, управление памятью unowned — неконтролируемая ссылка, которая не увеличивает счётчик ссылок weak — контролируемая ссылка: она изменяет счётчик и выполняет синхронизацию Для weak требуется атомарный доступ…
Почему нельзя блокировать main-поток во время сетевых операций? UI/UX: именно main-поток обеспечивает отзывчивость интерфейса При его блокировке происходит замерзание UI и ухудшается реакция приложения Сетевые запросы…
Сколько памяти нужно массиву из 5 ссылок на объекты классов? память распределяется между ссылками и объектами в куче размер одной ссылки определяется платформой: обычно 4 байта (32-бит) или 8 байт (64-бит) в массиве…
Ключевое различие concurrent и serial очередей Serial очередь обрабатывает задачи последовательно — каждую следующую только после предыдущей Concurrent очередь позволяет запускать задачи параллельно, чтобы они…
Архитектурный паттерн для управления состоянием приложения Поток данных направлен в одну сторону: action → reducer → state → view Подход предотвращает циклические зависимости и чрезмерную сложность Состояние…