Protobuf как контракт: spec‑first валидация с protovalidate (часть 2)

В первой части мы разобрали protoc-gen-validate и spec-first подход к валидации. Я обещал рассказать про protovalidate ну и вот, держите :) И самый первый вопрос конечно, а зачем вообще появился protovalidate, если PGV уже есть и работает?

https://habr.com/ru/articles/986422/

#go #golang #grpc #validate #testing #easyp #buf #protobuf #grpcgo #grpcсервисы

Protobuf как контракт: spec‑first валидация с protovalidate (часть 2)

В первой части мы разобрали protoc-gen-validate и spec-first подход к валидации. Я обещал рассказать про protovalidate ну и вот, держите :) И самый первый вопрос конечно, а зачем вообще появился...

Хабр

Protobuf как контракт: spec‑first валидация с protoc‑gen‑validate

Protobuf как контракт: spec‑first валидация с protoc‑gen‑validate Первая статья из мини‑серии про валидацию на базе Protobuf. В этой части — концепция spec‑first и protoc‑gen‑validate. В следующей поговорим про protovalidate и то, почему его вообще имеет смысл рассматривать как «следующее поколение» (или же как очередная эволюция в обратную сторону?) Также, чтобы не пропустить следующую часть, очень рекомендую подписаться на мой телеграмм канал :)

https://habr.com/ru/articles/974072/

#go #golang #grpc #validate #testing #easyp #buf #protobuf #grpcgo #grpcсервисы

Protobuf как контракт: spec‑first валидация с protoc‑gen‑validate

Первая статья из мини‑серии про валидацию на базе Protobuf. В этой части — концепция spec‑first и protoc‑gen‑validate. В следующей поговорим про protovalidate и то, почему его вообще имеет смысл...

Хабр

Часть вторая. Как я пытался засунуть gRPC в браузер — продолжение

Предыдущая часть Картина мира: почему браузер — главный блокер для «настоящего» gRPC Если коротко, gRPC живёт поверх HTTP/2 и активно полагается на стримы. А в браузере до сих пор нет низкоуровневого API, который позволил бы JavaScript управлять HTTP/2‑стримами на том уровне, который нужен gRPC. Даже unary‑вызов в gRPC — это частный случай стрима: открыли поток, отдали запрос, забрали ответ, закрылись. Пока браузеры не дадут этот «рычаг», все WEB‑решения — это компромиссы разной степени изящности. Чем это оборачивается на практике: Нативные bidi‑стримы из браузера недоступны Приходится конвертировать транспорт: HTTP/1.1 или WebSocket → что‑то «похоже на gRPC» → gRPC/HTTP2 на бэкенде Добавляются прокси, адаптеры и слой совместимости, где теряется часть достоинств «чистого» gRPC

https://habr.com/ru/articles/944894/

#go #grpc #grpcgateway #grpcstreaming #grpcсервисы #golang #protobuf #easyp #buf #rpc

Часть вторая. Как я пытался засунуть gRPC в браузер — продолжение

Предыдущая часть Картина мира: почему браузер — главный блокер для «настоящего» gRPC Если коротко, gRPC живёт поверх HTTP/2 и активно полагается на стримы. А в браузере до сих пор нет низкоуровневого...

Хабр

Как я пытался засунуть gRPC в браузер — часть первая

Одна из самых основных проблем в работе с gRPC - необходимость наружу вытаскивать отдельно REST API для web клиента, но, надо ли отдельно его писать, или можно как-то унифицировать и эту историю? И вот начал я копать эту тему, и чем глубже копал, тем больше удивлялся. Оказывается, за последние почти 10 лет было целых ТРИ ЧЕТЫРЕ серьезных попытки затащить gRPC в веб. И знаете что самое смешное? Самая первая попытка, сделанная в 2015 году японкой- одиночкой (в команде с коллегами), до сих пор остается самым адекватным решением. А Google со всеми своими миллиардами и армией разработчиков так и не смог ничего нормального придумать. Но обо всем по порядку. Ах, да, меня зовут Эдгар Сипки , я все также евангелист gRPC && OpenSource :) Кстати, мой канал , там я гораздо чаще пишу (а скоро еще и начну снимать очень много крутого контента про gRPC и Go), ну и конечно один из основателей инструмента EasyP Ссылка на полный доклад, если хочется посмотреть - YouTube

https://habr.com/ru/articles/941816/

#go #grpc #grpcgateway #grpcstreaming #grpcсервисы #golang #protobuf #easyp #buf #generator

Как я пытался засунуть gRPC в браузер — часть первая

Одна из самых основных проблем в работе с gRPC - необходимость наружу вытаскивать отдельно REST API для web клиента, но, надо ли отдельно его писать, или можно как-то унифицировать и эту историю? И...

Хабр