На странице собраны вопросы по Python — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, database, async.
Как в Python создать генератор с помощью yield? функция Python с ключевым словом yield приостанавливает работу после возврата значения сохраняет своё состояние между вызовами формирует объект-генератор (итератор)…
RabbitMQ — брокер сообщений, работающий по протоколу AMQP Продюсер публикует сообщения в exchange, который выполняет роль маршрутизатора Затем exchange передает сообщения в очередь согласно binding — правилам…
Redis представляет собой высокопроизводительное хранилище данных в формате ключ—значение Прямой поиск по значению не поддерживается, поскольку значения не индексируются Для такой задачи можно задействовать структуры…
персистентность — это гарантия сохранения данных на диске предусмотрено два основных механизма: RDB (Snapshotting): через заданные интервалы создаёт моментальные снимки состояния памяти и сохраняет их в компактные…
Как работает принцип внедрения зависимостей (Dependency Injection)? принцип SOLID, связанный с инверсией управления объект получает зависимости извне, а не создает их самостоятельно передача зависимостей выполняется…
Как в pytest запускать тест с разными параметрами? Тесты параметризуют с помощью декоратора @pytest.mark.parametrize Функции теста передают имена переменных и соответствующие списки значений Для каждого набора…
возможность pytest запускать один тест многократно декоратор @pytest.mark.parametrize получает названия параметров и набор соответствующих значений pytest последовательно передаёт эти значения тесту увеличивает…
Параллельное выполнение задач в асинхронном коде асинхронность в JS и Python (Node.js, asyncio) Promise.all / asyncio.gather — одновременно запускают задачи и ожидают завершения каждой из них запуск задач без await —…
Kafka и RabbitMQ: модели доставки push и pull Kafka использует pull-модель Воркер самостоятельно запрашивает появившиеся сообщения Это позволяет управлять темпом чтения: consumer контролирует offset Такой подход…
Кэш представляет собой хранилище промежуточных данных, которое ускоряет доступ к информации Инвалидация необходима для поддержания согласованности данных Основные стратегии инвалидации: TTL (время жизни):…
Подходы к оптимизации SQL-запросов Индексы: их создают для колонок, участвующих в частых фильтрах и JOIN, чтобы сократить число полных сканирований таблиц Минимизация JOIN: отказ от ненужных соединений,…
Начинаю с анализа логов и профилировщика, включая EXPLAIN, чтобы определить причину задержек Для связанных объектов выбираю жадную загрузку (eager loading), а не ленивую Для сложных случаев использую нативный SQL или…