Большинство DI-контейнеров поддерживает регистрацию нескольких реализаций одного интерфейса Для каждой реализации задаются отдельные идентификаторы — ключи, имена или теги Все реализации можно получить через общую…
Как в Go выполнять HTTP-запросы асинхронно? тема: конкурентность, net/http, goroutines параллельный запуск запросов выполняется через goroutines каждый HTTP-запрос помещается в отдельную goroutine (go func()) для…
Как в Go реализовать graceful shutdown с defer, контекстом и обработкой ошибок в группах горутин? управлять завершением приложения через context.Context (cancel/cancellation) применять defer для освобождения ресурсов,…
Надёжность доставки в Kafka обеспечивается за счёт репликации данных между узлами кластера Для этого применяется механизм ISR (in-sync replicas): запись подтверждают только реплики, которые синхронизированы с лидером…
Как устранить конфликт имён методов при использовании нескольких трейтов? Контекст: работа с Rust / трейты Проблема появляется, когда разные трейты содержат методы с одинаковыми именами Для решения при вызове…
Гарантии доставки сообщений в RabbitMQ в асинхронной модели RabbitMQ представляет собой брокер сообщений, поддерживающий надежную доставку Применяются гарантии at-most-once, at-least-once и условно exactly-once Для…
RabbitMQ — брокер сообщений, работающий по протоколу AMQP Продюсер публикует сообщения в exchange, который выполняет роль маршрутизатора Затем exchange передает сообщения в очередь согласно binding — правилам…
Как работает принцип внедрения зависимостей (Dependency Injection)? принцип SOLID, связанный с инверсией управления объект получает зависимости извне, а не создает их самостоятельно передача зависимостей выполняется…
Responder Chain представляет собой цепочку UI-объектов, через которую в iOS и macOS обрабатываются касания и другие действия пользователя. Её элементы являются объектами UIResponder, например UIView, UIViewController…
В CQRS командная (write) и запросная (read) базы разделяются, чтобы эффективнее распределять нагрузку Изменения передаются с помощью асинхронной репликации Для этого применяют event sourcing либо событийную шину…
Выбор стратегии: фабрика, DI или другой паттерн архитектурный подход к созданию объектов фабрика: отвечает за создание объектов и скрывает детали их конструирования Dependency Injection (DI): получает зависимости…
подход к управлению распределёнными транзакциями крупная транзакция представляется последовательностью локальных операций в отдельных сервисах для каждой операции предусматривается компенсирующее действие, позволяющее…