Специализация
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 в телеграм
Какова роль модуля torch.nn в PyTorch и чем он отличается от torch.autograd?
Модуль torch.nn в PyTorch используется для построения нейронных сетей, включая слои, функции активации и функции потерь. В то время как torch.autograd отвечает за автоматическое дифференцирование и вычисление градиентов, что необходимо для обратного распространения ошибки в процессе обучения. Они выполняют разные функции, но вместе образуют основу для создания и обучения моделей в PyTorch.
Объясните различия между 'torch.Tensor' и 'torch.autograd.Variable' в PyTorch.
В ранних версиях PyTorch torch.autograd.Variable был оберткой для тензоров, которая обеспечивала автоматическое вычисление градиентов. С версии PyTorch 0.4.0 все возможности Variable были перенесены в класс torch.Tensor, что упрощает использование и интерфейс.
Как работает ARC (Automatic Reference Counting) в Swift?
ARC отслеживает количество ссылок на каждый экземпляр класса и автоматически освобождает память, когда счётчик ссылок становится равным нулю. При присвоении ссылки счётчик увеличивается, при выходе ссылки из области видимости — уменьшается. Это позволяет разработчику не заботиться явно об освобождении памяти, пока не возникают циклы сильных ссылок.
Почему внедрение зависимостей через конструктор (@RequiredArgsConstructor) предпочтительнее, чем @Autowired в поле? Какие проблемы решает?
Внедрение через конструктор делает зависимости явными, класс — иммутабельным и упрощает тестирование. @Autowired в поле скрывает зависимости, усложняет мокирование и может привести к NullPointerException, если Spring не инициализирует поле.
Что такое autorelease и autorelease pool?
autorelease — отложенное освобождение объекта. autorelease pool — контейнер, который временно удерживает такие объекты и освобождает их при завершении.
Как выбираете DI-контейнер (Autofac, стандартный)?
Как ты верстаешь: Autolayout или фреймы? Сравни их по производительности.
Как Auto Layout пересчитывает констрейнты при изменении состояния UI?
В каких случаях Auto Layout может негативно влиять на производительность?
Когда предпочтительнее использовать фреймовую верстку вместо Auto Layout?
Рейтинг:
1
Сложность:
9
Стандартный контейнер – для простых проектов (минимальные зависимости).
Autofac – если нужны:
Расширенные возможности (модули, динамическая регистрация).
Интеграция с legacy-кодом.
Рейтинг:
2
Сложность:
6
Autolayout удобнее для адаптивной верстки, но может быть медленнее фреймов из-за расчета constraints. Frame-based layout быстрее, но требует ручного расчета размеров и позиций. Для сложных интерфейсов предпочтителен Autolayout, для производительности — фреймы.
Рейтинг:
5
Сложность:
8
Auto Layout пересчитывает констрейнты при любом изменении, которое может повлиять на геометрию интерфейса. Система помечает layout как “грязный”, затем в следующем layout-проходе решает систему уравнений и применяет новые размеры. Перерасчёт происходит лениво и может объединяться с другими изменениями. Чем сложнее и глубже иерархия, тем дороже этот процесс.
Рейтинг:
5
Сложность:
8
Auto Layout может негативно влиять на производительность, когда используется в сложных и часто обновляемых иерархиях. Частые изменения констрейнтов, глубокие деревья view и layout в каждом кадре приводят к дорогим перерасчётам. Особенно заметно это в списках, анимациях и при скролле. В таких местах Auto Layout требует аккуратного использования или замены.
Рейтинг:
4
Сложность:
7
Фреймовую верстку предпочтительно использовать там, где интерфейс простой, размеры известны заранее или UI часто обновляется. Она даёт полный контроль над геометрией и работает быстрее, так как не требует решения системы ограничений. Особенно хорошо фреймы подходят для ячеек списков, кастомных view и анимаций. При этом ответственность за адаптацию интерфейса ложится на разработчика.
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5