Кеш Swift: barrier и риск deadlock внутри completion
Собственная concurrent queue с barrier сериализует запись относительно чтений. Но вызов completion внутри очереди создаёт риск reentrancy и deadlock при setValue из callback.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Собственная concurrent queue с barrier сериализует запись относительно чтений. Но вызов completion внутри очереди создаёт риск reentrancy и deadlock при setValue из callback.
Читать ответЭто generic-кеш на Dictionary: T становится associatedtype Value, присваивание nil удаляет ключ. fetchValue вызывает completion синхронно, несмотря на название.
Читать ответИдемпотентными должны быть повторяемые изменения: создание по ключу запроса, запись URL, обработка событий и очистка. Аналитические переходы нельзя бездумно дедуплицировать по ссылке.
Читать ответПеревод должен атомарно изменять оба счёта и создавать неизменяемую запись операции. Идемпотентный ключ защищает от повторного списания после тайм-аута или повторного запроса.
Читать ответСделайте единый шлюз с проверкой доступа, TTL-кэшем и объединением одновременных запросов одного документа. Экономия не должна превращать устаревшие данные в молчаливое основание решения.
Читать ответОсновные дефекты: SQL-инъекция через id, nil-разыменования, запись в неинициализированную errs map и игнорирование ошибок. Нужны типизированный ввод, явная авторизация и репозиторий с context/error.
Читать ответНазовите измеренную нагрузку вместе с задержкой, долей ошибок и конфигурацией. Одно значение RPS без характера запросов и ресурсов не описывает возможности микросервиса.
Читать ответcontext передаёт отмену и дедлайн по цепочке вызовов. HTTP-запросы, обращения к БД и фоновые операции должны наблюдать его завершение и корректно освобождать ресурсы.
Читать ответProtobuf задаёт схему бинарных сообщений, а OpenAPI описывает контракт HTTP API. Ни один формат сам по себе не гарантирует совместимость: она зависит от характера изменения и поведения клиентов.
Читать ответЭто набор вопросов по Go, сети, БД и рабочему процессу. Технические ответы ниже сгруппированы по номерам; вопросы о личном опыте требуют ваших фактов.
Читать ответНормального фиксированного числа микросервисов в контуре нет. Их количество определяется границами ответственности, командой и эксплуатационной ценой.
Читать ответВыберите API-задачу с содержательным решением: идемпотентность, совместимость, пагинация, асинхронная операция или обработка ошибок. Покажите требования и компромиссы.
Читать ответ