Post Thumbnail

В многослойном Go-сервисе легко случайно пропустить наверх ошибки хранения данных (например, sql.ErrNoRows) вплоть до самых обработчика HTTP или gRPC и это приводит к связыванию транспортного уровня с деталями реализации базы данных.

Чтоб такого не случалось нужно определить доменные ошибоки (например user.ErrNotFound и user.ErrConflict) на границе сервиса и их трансляции в репозиториях: специфичные для БД ошибки перехватываются и заменяются доменными sentinel-ошибками. В результате транспортные обработчики работают только с доменными ошибками, преобразуя их в соответствующие HTTP или gRPC статусы (404, 409, 500), не импортируя пакеты БД

Похожее

Post Thumbnail

JIT для go

В статье про JIT-компилятор для Go версии 1.17+, форк проекта nelhage/gojit. ...

Post Thumbnail

PGKeeper

PGKeeper - это сервис на Go, который команда Figma разработала для замены устаре...

Post Thumbnail

CPU нагрузка

В статье рассматриваются проблемы оптимизации кода на Go, который нагружает CPU...