Подборка помогает системно подготовиться к интервью на позицию Backend-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: backend, database, api.
Работа с HTTP в Go resp.Body представляет собой поток тела ответа Необходимо обязательно вызвать defer resp.Body.Close() В противном случае возникает утечка ресурсов, включая TCP-соединения TCP-соединения не…
B-tree индекс: поиск значений и получение диапазонов устройство: сбалансированное дерево, состоящее из внутренних узлов, ключей и ссылок поиск: сопоставление искомого ключа с узлами и переход по ветвям с…
DDD и гексагональная архитектура DDD (Domain-Driven Design) — метод разработки, в основе которого лежит глубокое понимание предметной области Важный принцип DDD — выделить ядро домена, содержащее бизнес-логику, и…
Устройство List<T> и изменение вместимости массива List<T> в .NET представляет собой динамический массив — собственную оболочку над обычным массивом Элементы хранятся в массиве T[], который изначально имеет…
Реляционная СУБД с табличной организацией данных Базовая единица хранения — страница (page), как правило, размером 8 KB Информация размещается в heap-таблицах, состоящих из неотсортированных страниц Каждая страница…
Что представляет собой Redis и где его применяют? In-memory СУБД с моделью ключ-значение Очень высокая скорость за счёт хранения данных в оперативной памяти Работа с разными структурами данных: строками, списками,…
Как ThreadLocal передаёт параметры, связанные с конкретным потоком? хранит данные отдельно для каждого потока гарантирует, что каждый поток получает собственное независимое значение позволяет обращаться к данным…
управление конкурентным доступом (Concurrency Control) уровни изоляции (Read Uncommitted → Serializable) блокировки (Locking): shared и exclusive мультиверсионность (MVCC) — хранение версий данных для чтения…
компонент для взаимодействия с БД, гарантирующий атомарность операций применяется модуль django.db.transaction доступны декораторы и менеджеры контекста: @transaction.atomic — помещает блок кода внутрь транзакции with…
Как устроен preemption в Go runtime? механизм принудительного вытеснения горутин является частью Go scheduler (планировщика) останавливает горутину, не позволяя ей монополизировать CPU применяется при длительных…
Как в Go обрабатываются ошибки и паники? ошибка представляется как значение через интерфейс error после вызова функции выполняется явная проверка (if err != nil) паника возникает при критических ошибках, например при…