Изменяемые и неизменяемые типы данных изменяемые (mutable): объекты, чьё состояние допускает изменение после создания неизменяемые (immutable): объекты, состояние которых остаётся неизменным после создания в JS к…
Типы индексов PostgreSQL и сценарии их применения B-tree: универсальный вариант для равенств и диапазонов Hash: эффективен при точных равенствах, однако имеет ограниченные возможности GIN: подходит для мультивалютных…
Этапы обработки запроса во фреймворках (aiohttp/FastAPI/Django) веб-сервер принимает HTTP-запрос маршрутизация определяет handler/эндпоинт по URL и методу middleware выполняет промежуточные задачи, например…
asyncio предназначен прежде всего для I/O-bound задач CPU-bound вычисления способны блокировать event loop Для таких задач применяют ThreadPoolExecutor либо ProcessPoolExecutor Для CPU-bound операций предпочтителен…
Какой протокол применяется в RabbitMQ? RabbitMQ представляет собой брокер сообщений Базовый протокол — AMQP (Advanced Message Queuing Protocol) AMQP — открытый стандартный и надежный протокол очередей Он поддерживает…
Почему в Go нельзя создавать новый http.Client для каждого запроса? http.Client — структура, предназначенная для отправки HTTP-запросов в Go через встроенный Transport управляет TCP-подключениями Transport повторно…
Почему в Go чаще выбирают небуферизированные каналы? В Go каналы применяют для синхронизации Небуферизированный канал блокирует и отправителя, и получателя Обеспечивает жёсткую синхронизацию goroutine Предотвращает…
Для чего нужен S3-подобный storage и в чём его преимущество перед сервером? Облачное объектное хранилище Масштабирование до экзабайт без остановки работы Совместимость API с AWS S3 делает интеграцию простой.…
Асинхронный обмен данными: вызов не блокируется Надёжная доставка с помощью очередей и подтверждений Простое масштабирование при увеличении нагрузки Поддержка сложных коммуникационных паттернов (pub/sub,…
Почему context.Background() не следует передавать вглубь бизнес-логики и как правильно работать с контекстами context.Background() представляет собой корневой пустой контекст: его нельзя отменить, и в нём нет значений…
Почему «отправка в брокер до коммита» не обеспечивает транзакционность с двумя очередями? область: распределённые транзакции и messaging «отправка в брокер до коммита» означает, что сообщение попадает в очередь до…