Post Thumbnail

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

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

Похожее

Post Thumbnail

C на Go

Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...

Post Thumbnail

Rune

Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...