Вернуться в видеотекуСобеседование на Middle iOS разработчика. Артур Игбердин & Илья Шаповалов
Публичное мок-собеседование Middle+ iOS-разработчика с вопросами по памяти и ARC, лайвкодингом и архитектурным рефакторингом. В конце участники обсуждают слабые ссылки в коллекциях и получают обратную связь по решениям.
- Направление
- Mobile
- Формат
- Мок-собеседование
- Компания
Совкомбанк- Грейд
- Middle
- Длительность
- 1 ч 49 мин
Коротко о видео
Это публичное мок-собеседование на позицию Middle+ iOS-разработчика: Артур Игбердин интервьюирует ментора Илью Шаповалова. Они разбирают опыт Ильи с macOS-разработкой и кастомным меню, затем проходят память, value/reference types, ARC/MRC, autorelease, unowned-ссылки и retain cycles. Практическая часть включает удаление чётных чисел из массива без дополнительного массива, рефакторинг View Controller с DI и unit-тестами, а также слабое хранение объектов в массиве через WeakBox; в конце интервьюер даёт обратную связь по выполнению заданий.
Затронутые темы
Что взять на заметку
- Подготовьте краткий рассказ о проектной задаче: Илья объясняет реализацию кастомного меню для macOS, его декларативную конфигурацию и требования к повторному использованию.
- Повторите устройство памяти и Swift-типы: стек, куча, сегменты данных/текста, value и reference types, а также случаи boxing и размещения значений в heap.
- Уметь объяснять ARC, retain/release/autorelease и искать retain cycles на практике через Memory Graph, Leaks в Instruments и `deinit`-логи.
- Для удаления чётных элементов из массива in-place нельзя бездумно идти `for`-циклом по исходным индексам: после удаления элементы сдвигаются, возможны пропуски и выход за границы; обсуждается `while` с контролируемым индексом.
- Учитывайте стоимость удаления из массива: при сдвиге элементов худшая временная сложность обсуждаемого решения — O(n²), а дополнительная память — O(1).
- При рефакторинге View Controller обсуждаются разделение создания и настройки view, `final`/`static` там, где это уместно, внедрение зависимостей для сервиса и логгера и проверка поведения unit-тестами.
- Обычный массив удерживает экземпляры классов сильными ссылками; для слабого хранения объектов обсуждается обёртка `WeakBox` и необходимость отдельно очищать устаревшие обёртки.