Swift | Тесты
1.21K subscribers
25 photos
345 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Вопросы собесов t.me/+wtkjBoN6OI5hNGEy
Задачи t.me/+JQkI4zSOEXtkYzg6
Вакансии t.me/+3o9-Ytdiv_E5OGIy
Download Telegram
👍1
🤔 За что отвечает "L" в "SOLID"?

"L" в SOLID — это принцип Лисков (Liskov Substitution Principle), который гласит, что объект дочернего класса должен корректно работать там, где используется объект родительского класса. Это помогает создавать устойчивые и легко расширяемые архитектуры.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift реализовать механизм, позволяющий множеству слушателей реагировать на изменения в объекте без необходимости опрашивать его состояние?
Anonymous Quiz
62%
Использование шаблона Observer
9%
Применение Delegation
22%
Использование Notifications
7%
Применение Bindings
🤔 Как в Swift защитить данные от изменений после их первоначальной инициализации, но при этом позволить их чтение из любого места?
Anonymous Quiz
38%
Использование public let
53%
Применение private(set) public get
5%
Использование readonly
3%
Применение immutable
🤔 Как реализовать в Swift кросс-модульную связь между компонентами без использования глобальных переменных?
Anonymous Quiz
30%
Использование Singleton
4%
Применение Event Bus
59%
Использование Dependency Injection
7%
Применение Interface
🤔 Как в Swift реализовать строгую типизацию для JSON данных при их десериализации, минимизируя риск ошибок времени выполнения?
Anonymous Quiz
38%
Использование Codable
31%
Применение JSONSerialization
8%
Использование Type-Safe JSON
23%
Применение Decodable
😁3
🤔 Как в Swift защитить выполнение критического кода, чтобы обеспечить его выполнение только одним потоком в данный момент времени?
Anonymous Quiz
26%
Использование Mutex
28%
Применение Semaphore
8%
Использование Synchronized block
38%
Применение Dispatch Barrier
🤯1
🤔 Сколько может быть куч и стеков в приложении

В приложении может быть одна куча, общая для всего процесса, где хранятся динамически выделяемые данные. Стеков в приложении может быть несколько, обычно один на каждый поток, что позволяет каждому потоку иметь свои локальные данные и вызовы функций. Таким образом, многопоточное приложение имеет одну общую кучу и несколько стеков.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift протестировать код, который зависит от текущего времени, не изменяя системные часы?
Anonymous Quiz
28%
Использование Date()
19%
Применение SystemClock интерфейса
26%
Создание мок объекта для времени
27%
Использование TimeInterval
🤔 Как в Swift создать безопасный механизм для изменения значения свойства из разных потоков?
Anonymous Quiz
3%
Использование volatile
14%
Применение atomic
44%
Использование DispatchQueue.sync
39%
Применение NSLock
🤔 Что такое deadlock?

Deadlock — это ситуация, при которой два или более процесса или потока блокируют друг друга, ожидая освобождения ресурсов, которые каждый из них удерживает. Это приводит к остановке выполнения, так как никто не может продолжить работу.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🤔 Что под капотом стэка?

Под капотом стек организован как непрерывный блок памяти, управляемый указателем вершины. Операции добавления и удаления происходят за константное время O(1), а память автоматически освобождается при удалении элементов. Стек обычно используется для хранения вызовов функций, локальных переменных и управления потоком выполнения.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Как в Swift обеспечить выполнение определенного блока кода только после того, как несколько параллельных асинхронных задач будут завершены?
Anonymous Quiz
66%
Использование DispatchGroup
4%
Применение Promise.all
22%
Использование async/await с группой
7%
Применение Semaphore
🤔 Как реализовать строгий контроль типов при передаче сообщений между различными компонентами приложения в Swift?
Anonymous Quiz
65%
Использование протоколов и делегатов
4%
Применение универсальных шаблонов
26%
Использование typealias для определения типов сообщений
5%
Применение модели EventBus с типизацией
🤔 За счёт чего стек быстрее кучи?

Стек быстрее кучи, потому что операции в стеке, такие как добавление и удаление, имеют фиксированную сложность O(1), благодаря строгому порядку (LIFO). Стек управляется автоматически, без необходимости выделения и освобождения памяти вручную. Куча, напротив, требует больше времени из-за динамического управления памятью и возможных операций фрагментации.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Как в Swift реализовать механизм переиспользования объектов для улучшения производительности и управления памятью?
Anonymous Quiz
25%
Использование шаблона Singleton
15%
Применение пула объектов (Object Pool pattern)
30%
Использование статических фабрик
30%
Применение weak ссылок для управления памятью
🤔 Какое свойство DispatchQueue необходимо задать для создания последовательной очереди?
Anonymous Quiz
13%
concurrent
55%
serial
11%
async
21%
sync
🤔 За что отвечает "L" в "SOLID"?

"L" в SOLID — это принцип Лисков (Liskov Substitution Principle), который гласит, что объект дочернего класса должен корректно работать там, где используется объект родительского класса. Это помогает создавать устойчивые и легко расширяемые архитектуры.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM