Чем отличаются errors.Is, errors.As и errors.Join Улучшения работы с ошибками, появившиеся в Go 1.13 и более поздних версиях errors.Is определяет, присутствует ли в ошибке заданная целевая ошибка: сравнивает её через…
Индекс — это структура данных, предназначенная для ускорения поиска в БД На практике его часто строят на основе B-дерева или B+-дерева B-дерево сохраняет балансировку и обеспечивает логарифмическую сложность поиска…
Как реализовать сложение чисел и строк разных типов? Контекст задачи: перегрузка метода или создание универсального метода для работы с различными типами данных Строковые значения преобразуются в числа с помощью…
Реализация офлайн-приложений и кэширования с помощью Service Workers Service Worker — фоновый скрипт, расположенный между приложением и сетью Он перехватывает запросы и выполняет программное кэширование с…
Как создать Singleton в Python? Паттерн гарантирует наличие единственного экземпляра класса Для экземпляра используется глобальное хранилище Ручную логику можно разместить в new или init: в new выполняются проверка и…
Как устроен сборщик мусора в Python? управление памятью основано на подсчёте ссылок (reference counting) для каждого объекта ведётся счётчик ссылок; когда он становится равен 0, объект удаляется освобождение памяти…
Проектирование gRPC API с сохранением backward compatibility gRPC API описывается с помощью Protocol Buffers (proto) Не удаляйте существующие поля — добавляйте новые, назначая им уникальные номера для расширения схемы…
data pipeline — это цепочка последовательных операций обработки данных надёжность достигается за счёт обработки ошибок, повторных попыток и мониторинга масштабируемость обеспечивают распределённые системы и…
Типичный процесс непрерывной интеграции (CI pipeline) Автоматическая сборка проекта и выполнение тестов Сборка приложения после каждого коммита Запуск юнит- и интеграционных тестов Проверка кода с помощью статического…
Аннотации Spring для компонентов и бинов Spring представляет собой контейнер для управления зависимостями @Component — универсальная аннотация, предназначенная для регистрации компонента в контексте Spring @Service —…
Архитектурные паттерны для производительности и отказоустойчивости CQRS: разносит операции чтения и записи, позволяя отдельно оптимизировать каждую из них Шардирование: горизонтально распределяет данные, чтобы…