Как устроен сборщик мусора в Python? управление памятью основано на подсчёте ссылок (reference counting) для каждого объекта ведётся счётчик ссылок; когда он становится равен 0, объект удаляется освобождение памяти…
async/await применяет лежащую в основе генераторов концепцию приостановки и возобновления выполнения, но ориентирован именно на Promise и асинхронные операции.
REST — архитектурный стиль, а HTTP — протокол Как правило, запросы выполняются синхронно: клиент ожидает ответ сервера Асинхронность реализуется на стороне клиента или сервера На клиенте: применять fetch/AJAX с…
Как установить последний приоритет для экшена при диспатче Контекст: контроль порядка выполнения в Redux/Middleware Подключить middleware, которое будет управлять последовательностью диспатчей Организовать очередь…
Отображение сообщения из фонового потока в Windows Forms UI-поток в Windows Forms является однопоточным, поэтому другой поток не может напрямую изменять его элементы Для передачи выполнения в UI-поток применяют…
DispatchGroup — инструмент GCD для объединения асинхронных задач Перед запуском каждого запроса создаём DispatchGroup и вызываем enter() После завершения очередного запроса вызываем leave() С помощью notify() получаем…
В основе лежит распределённая система для обмена сообщениями После регистрации клиента сервис выдаёт ему уникальный токен устройства Бэкенд сохраняет токены и передаёт уведомления через Push Notification Service…
data pipeline — это цепочка последовательных операций обработки данных надёжность достигается за счёт обработки ошибок, повторных попыток и мониторинга масштабируемость обеспечивают распределённые системы и…
Как устроена работа тасков внутри state machine? (Управление состояниями в тасках) state machine — модель, в которой явно заданы состояния и переходы таск описывается набором состояний и переходов между ними для…
Проверка взаимодействия микросервисов через брокер сообщений Kafka Интеграционные тесты: проверка передачи сообщений через тестовый брокер, например embedded Kafka Контрактные тесты: проверка соответствия сообщений…
Улучшить алгоритм и уменьшить его сложность, например перейти с O(n²) на O(n log n) Исключить повторные вычисления с помощью кэширования или мемоизации Свести к минимуму обращения к внешним ресурсам, таким как база…