Подборка помогает системно подготовиться к интервью на позицию Backend-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: backend, database, api.
Чем отличаются errors.Is, errors.As и errors.Join Улучшения работы с ошибками, появившиеся в Go 1.13 и более поздних версиях errors.Is определяет, присутствует ли в ошибке заданная целевая ошибка: сравнивает её через…
Индекс — это структура данных, предназначенная для ускорения поиска в БД На практике его часто строят на основе B-дерева или B+-дерева B-дерево сохраняет балансировку и обеспечивает логарифмическую сложность поиска…
Как работают алгоритмы агрегации данных: внутреннее устройство GROUP BY при обработке CSV без БД построчная обработка с чтением CSV целиком в память либо последовательным потоком формируется структура группировки, как…
HTTP middleware представляет собой функцию, которая оборачивает http.Handler Она принимает http.Handler и возвращает другой http.Handler, добавляя логику до или после запуска основного обработчика На практике…
Реализация пагинации и фильтрации в API Пагинация — это разделение ответа на отдельные страницы, которое позволяет сократить объем одновременно передаваемых данных Основные варианты пагинации: offset-based offset +…
Потокобезопасная структура блокировок по ID цель: обеспечить конкурентный контроль доступа к ресурсам, связанным с уникальным ID хранить блокировки по ID в ConcurrentHashMap / concurrent dictionary для каждого ID…
Как реализовать сервис long polling? long polling — способ асинхронного опроса, при котором клиент ожидает данные от сервера клиент отправляет запрос, а сервер оставляет соединение открытым до появления данных либо…
Ключи идемпотентности: как предотвратить повторное выполнение операций Идемпотентный ключ представляет собой уникальный идентификатор операции Для каждой транзакции клиент создает отдельный ключ Сервер сохраняет ключи…
Как устроен сборщик мусора в Python? управление памятью основано на подсчёте ссылок (reference counting) для каждого объекта ведётся счётчик ссылок; когда он становится равен 0, объект удаляется освобождение памяти…
Как реализовать связь моделей «Магазин» и «Книга», если одна книга продаётся в разных магазинах Контекст: проектирование отношений в реляционной базе данных Тип связи: многие ко многим Способ реализации: промежуточная…
Как обеспечить идемпотентность REST API и исключить дублирование операций? Контекст: REST API и идемпотентность Идемпотентность означает, что повторное выполнение операции не меняет полученный результат. Следует…
Интеграция с внешним API или сервисом Настроить повторные попытки (retry) с экспоненциальным увеличением интервала Задать тайм-ауты для запросов и обрабатывать возникающие ошибки При недоступности сервиса сохранять…