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

Вопросы собесов t.me/+wtkjBoN6OI5hNGEy
Задачи t.me/+JQkI4zSOEXtkYzg6
Вакансии t.me/+3o9-Ytdiv_E5OGIy
Download Telegram
🤔 Обязательно ли асинхронность и многопоточность следуют друг за другом, или это раздельные понятия?

Асинхронность и многопоточность — раздельные понятия:
1. Асинхронность: Управляет задачами так, чтобы они не блокировали выполнение других операций, независимо от числа потоков.
2. Многопоточность: Использует несколько потоков для параллельного выполнения задач.
Асинхронность может быть реализована на одном потоке, например, с помощью событийного цикла.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как реализовать в Swift механизм сравнения объектов на равенство по определенным критериям?
Anonymous Quiz
54%
Реализация Equatable
20%
Перегрузка оператора ==
13%
Применение метода isEqual
13%
Использование Comparable
💊1
🤔 Какой механизм Swift используется для выполнения кода только после завершения всех асинхронных задач в группе?
Anonymous Quiz
16%
DispatchQueue.main
72%
DispatchGroup
7%
OperationQueue
6%
Semaphore
🤔 Может быть асинхронность без многопоточности?

Да, асинхронность может существовать без многопоточности. Асинхронные операции позволяют выполнять задачи без блокировки текущего потока, используя механизмы, такие как событийные циклы (event loops) или callback-и. Например, в JavaScript все операции асинхронны, но выполняются в одном потоке благодаря Event Loop.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Какой паттерн в Swift подразумевает создание только одного экземпляра класса на весь жизненный цикл приложения?
Anonymous Quiz
3%
Prototype
4%
Builder
92%
Singleton
1%
Factory
🤔 Почему нельзя записать пример ячейки?

Причины могут быть такими:
1. Сложная структура данных: Если данные плохо организованы, то сложно правильно настроить отображение.
2. Проблемы с повторным использованием: Неправильно настроенные ячейки могут не учитывать переиспользование в UITableView или UICollectionView.
3. Отсутствие четкого дизайна: Если нет ясного понимания, что должна отображать ячейка, её реализация становится затруднительной.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой компонент используется для управления состоянием в сложных приложениях на Swift?
Anonymous Quiz
19%
Delegate
21%
Redux
21%
ViewModel
39%
Coordinator
🤔 Какой инструмент анализа производительности используется в Xcode для оптимизации приложений на Swift?
Anonymous Quiz
22%
Instruments
41%
Profiler
17%
Analyzer
20%
Debugger
🤔 Почему плохо загружать главный поток, и какие есть способы этого не делать?

Почему плохо:
1. Главный поток отвечает за обновление пользовательского интерфейса.
2. Его блокировка приводит к зависанию приложения и ухудшению пользовательского опыта.
3. Возможна ошибка "Application Not Responding" (ANR).
Как избежать:
1. Выполняйте ресурсоемкие задачи (сеть, вычисления) в фоновых потоках с использованием DispatchQueue, NSOperationQueue или Coroutines.
2. Используйте асинхронные операции с callback-ами, Promise, или реактивными библиотеками (RxSwift).
3. Минимизируйте время выполнения операций, требующих обновления UI, чтобы быстрее возвращаться в главный поток.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift реализовать безопасный доступ к многопоточным ресурсам?
Anonymous Quiz
6%
Использование synchronization
8%
Применение atomic properties
58%
Использование DispatchQueue
28%
Применение NSLock
Forwarded from easyoffer
Привет, ребята!
1,5 года я учился на программиста, а сайт easyoffer.ru стал моим пет-проектом. Я создавал его, потому что:
а) нужно было добавить хоть какой-нибудь проект в резюме
б) подготовиться к прохождению собесов

И всё получилось! Благодаря еasyoffer я успешно прошёл собеседование и устроился Python Junior-разработчиком на удаленку с зарплатой 115 тысяч рублей.

Однако ещё во время разработки я понял, что у этого проекта есть потенциал. Казалось, что сайт может стать популярным и, возможно, превратиться в стартап.

По-этому я с самого начала заложил в проект минимальную бизнес-модель, на случай, если сайт начнёт набирать трафик. Я предложил пользователям полный доступ к сайту в обмен на подписку на Telegram-каналы. Это позволяло развивать аудиторию, а в будущем — зарабатывать на рекламе.

Результат превзошёл ожидания!
С момента запуска easyoffer посетило 400 тысяч человек. А когда доход с рекламы превысил мою зарплату программиста, я принял решение уйти с работы и полностью посвятить себя разработке новой версии сайта.

Вот так, зайдя в IT, через 4 месяца вышел через свой же пет-проект. Мне очень повезло

Уже год я работаю над easyoffer 2.0.
Это будет более масштабный и качественной новый проект:
– Появится тренажер
– Появятся задачи из собесов
– Фильтрация контента по грейдам
и еще очень много фич, о которых я расскажу позже.

Хочу, довести easyoffer до ума, чтобы сайт стал настоящим помощником для всех, кто готовится к собеседованиям.
По этому в ближайшее время я объявлю о старте краудфандинговой кампании, чтобы ускорить разработку и я готов щедро отблагодарить всех, кто поддержит проект.

А те, кто поддержат проект первыми, получат специальные лимитированные выгодные вознаграждения. Следите за этим телеграм каналом, если хотите стать первыми сапортерами.
🤔 Каким способом можно в Swift улучшить читаемость сложных условных операторов?
Anonymous Quiz
74%
Использование switch
5%
Применение многоуровневых if
12%
Использование pattern matching
9%
Применение early exit с guard
🤔 Зачем делить код?

1. Читаемость: Разделение улучшает структуру и упрощает понимание кода.
2. Повторное использование: Логика, вынесенная в модули или функции, может быть использована в других местах.
3. Тестируемость: Разделённые части легче покрыть тестами.
4. Поддержка: Разделённый код проще менять и расширять, минимизируя риски ошибок.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как обеспечить, чтобы метод в Swift был доступен только для тестирования?
Anonymous Quiz
22%
Применение @available(testing)
29%
Использование #if TESTING
6%
Применение internal доступа
🤔 Как обработать ошибки в асинхронной функции Swift, возвращающей результаты через Future или Promise?
Anonymous Quiz
31%
Использование catch
21%
Применение try
23%
Использование handleError
25%
Применение await
🤔 Что такое companion object?

1. Companion object — это объект, определённый внутри класса, который является его частью и используется для хранения статической информации.
2. Он позволяет определять функции и свойства, которые можно вызывать без создания экземпляра класса.
3. В Kotlin companion object заменяет привычные статические члены из других языков.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2🔥1
🤔 Как в Swift можно использовать замыкания для создания немедленно исполняемого выражения, например, для инициализации свойства?
Anonymous Quiz
13%
Использование lazy var
23%
Применение immediately executed closure
21%
Использование self-executing closure
44%
Применение ()
1
Forwarded from easyoffer
Ищу работу пол года

Практически под каждым постом в этом канале я вижу комментарии от людей, которые ищут работу по полгода. Это перерастает в обсуждение того, как нужно (или не нужно) искать работу, почему процесс найма сломан и как они откликались на фейковые вакансии.

Честно говоря, искать работу полгода — это нонсенс. Очевидно, что человек делает что-то не так. Главная ошибка, которую совершают многие, — это создание иллюзии поиска работы.

То есть человек вроде бы ищет работу, но делает это неэффективно, тратя время на нецелевые действия. Например:

Просматривает вакансии перед откликом.
Пытается понять, подходит ли он под вакансию. Если считает, что не подходит — не откликается.
Пишет сопроводительные письма (иногда даже уникальные под каждую вакансию).
Заполняет анкеты, проходит тесты.

Все эти действия отнимают время, но не приводят к результату.

Почему это не работает?

HR-менеджер не может вручную отсмотреть 2000 откликов, оценить каждое резюме и прочитать сопроводительные письма. Поэтому компании используют ATS-системы (системы автоматического подбора), которые анализируют резюме и определяют процент его соответствия вакансии.

Что делать, чтобы повысить шансы?

1️⃣ Добавить ключевые навыки в резюме — и в основной текст, и в теги. Возьмите их с easyoffer.ru

2️⃣ Убрать нерелевантный опыт, оставить только подходящий.

3️⃣ Оформить опыт так, чтобы он выглядел релевантным. Если у вас его нет, укажите проекты, стажировки или другой опыт, который можно представить как работу от 1 года. Если опыт слишком большой, сузьте его до 6 лет.

4️⃣ Откликаться на все вакансии без разбору. Если вы Junior, не ищите только стажер или Junior-вакансии — пробуйте везде. Не отказывайте себе сами, пусть это решит HR

5️⃣ Сделать резюме публичным, потому что HR-менеджеры часто ищут кандидатов не только среди откликов, но и в базе резюме.

6️⃣ Используйте ИИ по минимуму – ATS-системы считывают это и помечают "сгенерировано ИИ"

‼️ Главное правило: чем больше откликов — тем выше шанс получить оффер. Делайте резюме удобным для ATS-систем, и вас заметят.

1. Посмотрите видео о том как я вывел свою резюме в Топ1 на HH
2. Посмотрите видео как я нашел первую работу
3. Прочитайте этот кейс про оптимизацию резюме

Если прям вообще тяжело.

Создайте несколько разных резюме. Создайте 2, 3 да хоть 10 резюме. Настройте авто-отлики и ждите приглашения на собесы.

Не нужно создавать иллюзию поиска работы, сделайте несколько простых и актуальных действий.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift можно автоматически проверить и применить миграции моделей данных при обновлениях приложения?
Anonymous Quiz
36%
Использование DataMigrationManager
39%
Применение CoreData Versioning
16%
Использование UserDefaults для трекинга версий
8%
Применение Automatic Schema Evolution