Post Thumbnail

Автор предлагает паттерн для Go-сервисов: вынести обвязку и все связанное с декодированием, валидацией, приведеним типов, кодированием из каждого хендлера в один обобщённый адаптер Wrap[In, Out] на транспорт.

Сервисная функция остается чистой - func(ctx, In) (Out, error) без малейшего следа HTTP, gRPC или JSON. Для каждого транспорта пишется один Wrap, который принимает decode + service function + encode и возвращает готовый http.Handler или gRPC-handler. Добавление нового эндпоинта сводится к decode/encode + одной строке в роутере, а middleware и интерцепторы работают как обычно, снаружи Wrap.

Старо как мир, но красиво. На фотке, кстати, самый настоящий врап. Погуглите, если не верите

Похожее

Post Thumbnail

Батчинг

Статья показывает, как в Go аккуратно батчить данные, поступающие в реальном вре...

Post Thumbnail

KV на S3

Статья разбирает, как построить key-value базу данных, у которой основным слоем ...

Post Thumbnail

Soppo

Пятничный язык программирования! Я про него уже писал, но он продолжает развиват...