Проектирование и реализация паттерна circuit breaker
Проектирование Circuit Breaker (Предохранитель). CB — это решение, которое предотвращает каскадные сбои и собирает метрики для мониторинга состояния внешних сервисов. То есть когда сервис от которого ...
Реализация быстрой сортировки (Quick Sort)
Реализовать алгоритм Быстрой сортировки (Quick Sort), объяснив каждый шаг.
Потом давайте проанализируем его временную и пространственную сложность в лучших, худших и средних случаях.
Мы можем обсуди ...
Абстрактные базовые классы для энфорсинга использования интерфейсов
Что такое абстрактные базовые классы (abstract base classes, ABC) в Python и какую проблему они решают? Объясните, как ABC можно использовать для обеспечения согласованных интерфейсов по всей кодовой ...
Распределенная обработка задач с гарантией "точно один раз" и S3
Необходимо спроектировать распределенную систему обработки задач (данных) на Python, где задачи хранятся в S3.
Можно использовать только S3, без развертывания или использования внешних сервисов. Вы м ...
Ограничения GIL и техники оптимизации
Как Global Interpreter Lock в Python влияет на производительность многопоточных приложений, интенсивно использующие вычисления на процессоре (CPU-bound)?
Объясните стратегии, которые вы бы реализовал ...
Внутреннее устройство словарей Python
Объясните, как работает словарь Python изнутри. Какие стратегии он использует для обработки коллизий хешей?
Подсказки:
Подумайте, как словари хранят пары ключ-значение внутри.
Подумайте о временной ...
Стратегии обхода графа BFS и DFS: где используются, сложность и компромиссы
Объясните различия между алгоритмами поиска в ширину (Breadth-First Search) и поиска в глубину (Depth-First Search). В каких реальных приложениях вы бы выбрали один из них?
Подсказки:
Рассмотрите, к ...
Python: сбор мусора и оптимизация памяти
Как Python управляет памятью внутри? Объясните стратегии оптимизации использования памяти в больших приложениях Python. Можно с примерами.
Подсказки:
Сфокусируемся на подсчете ссылок, сборке мусора ...