Обработка исключений в микросервисной архитектуре микросервисы — автономные сервисы с изолированной бизнес-логикой централизованный сбор и логирование ошибок, например с помощью ELK или Prometheus обработка на уровне…
Таймауты и ретраи во взаимодействии микросервисов сетевые запросы выполняются с ограниченным временем ожидания таймауты не позволяют запросам зависать надолго экспоненциальная задержка между ретраями уменьшает…
Правила оформления баг-репортов Контекст: баг-репорт — это документ, предназначенный для учёта и отслеживания ошибок в ПО Кратко и однозначно описать проблему (что именно не работает) Привести шаги воспроизведения…
Правила оформления тест-кейсов однозначная и понятная структура (ID, название, описание, шаги, ожидаемый результат) понятные и конкретные формулировки для каждого шага единый формат и согласованная терминология…
Как сопоставлять доменные ошибки с HTTP-кодами? Доменная ошибка описывает бизнес-логику, а HTTP-код относится к протоколу 400 (Bad Request): ошибки валидации и некорректные входные параметры 404 (Not Found):…
Как SOLID и Dependency Inversion применяются в микросервисной архитектуре SOLID — это набор принципов чистого кода и архитектуры, первоначально разработанный для ООП. Dependency Inversion (DIP) предполагает…
Как работает context.Done() и почему закрытие канала получают все горутины? context.Done() — канал для наблюдения за отменой контекста возвращает канал, закрываемый при отмене или завершении заданного времени одно…
Как работают generics в TypeScript? язык программирования TypeScript инструмент обобщённого программирования позволяет создавать функции и классы, использующие параметры типов конкретный тип указывается во время…
Механизмы retry и circuit breaker retry повторно отправляет запрос после ошибки и особенно полезен при временных сбоях основные настройки: максимальное число попыток, интервал между ними и экспоненциальный бэкофф…
Три принципа ООП: инкапсуляция, наследование и полиморфизм ООП — это парадигма, в которой структура программы строится вокруг объектов Инкапсуляция: изоляция данных и обращение к ним через методы для защиты…
Чем отличаются errors.Is, errors.As и errors.Join Улучшения работы с ошибками, появившиеся в Go 1.13 и более поздних версиях errors.Is определяет, присутствует ли в ошибке заданная целевая ошибка: сравнивает её через…