Frontenders Banned Me from gRPC! How gRPC Gateway Saved My Golang Application
ฝัง
- เผยแพร่เมื่อ 5 ก.ย. 2024
- A couple of years ago I was introduced to the wonderful gRPC protocol. I thought that life had finally reached its ideal, but the front-end developers upset me. They said that this stuff won't work in the browser and I should throw my gRPC in the trash and go back to http. However, after some searching, I discovered gRPC Gateway which solved my problems. It allowed us to start using http and gRPC together. In this video I will tell you how to code all this in a golang application, and also describe the pros and cons of this solution.
Sign up for an open lesson: clck.ru/38NB5a
My Boosty: boosty.to/olez...
Linkedin: / olezhek28
Personal telegram channel: t.me/olezhek28go
gRPC video: • gRPC в Golang: Практич...
Video about clean architecture: • Чистая архитектура про...
Editing: @fedya_illn
About life in IT, which is not limited to code! Everyone has long known that a programmer is a person who works a couple of hours a day, and the rest of the time drinks vanilla raf. However, this does not always happen and not everywhere. IT, in addition, is full of specific problems, difficult tasks and serious workload.
My name is Oleg, I am a senior developer at Avito Tech. On my channel I share my experience of life in IT. Sometimes these are technical videos about my favorite golang, and sometimes I digress from the code and talk about everyday things. Golang is certainly good, but it doesn’t end there.
It’s interesting to discuss training and career development, psychological fears and burnout, bad and good companies, as well as help beginners on their difficult path to IT. I know how difficult it is to start your journey in the IT world.
Therefore, with my content, including myself, I want to support those who decide to do this. Subscribe to my channel and enjoy watching!
Subscribe to my channel: www.youtube.co...
#Oleg Kozyrev #life #programming
Как же это вовремя, рекомендации в очередной раз спасают. Как раз на проекте голову ломаем как нам на веб версию свечи отсылать, а тут решение.
рад, что в тему оказался)
Спасибо, хорошее описание
Рад, что понравилось)
у команды git clone есть аргумент --depth , в котором можно указать сколько коммитов от мастера скачать. --depth=1 скачает только мастер, без остальной портянки.
а про (хттп) метод update - наверное, put имели ввиду?
Я что-ли пут назвал пушем?) оговорился похоже
@@olezhek28go пут апдейтом )
)) первый раз вижу, чтобы экзешнички в макоси появлялись))
Ахах я конечно про бинари)
Правильно ли я понимаю что шлюз полезен, когда некий сервис нужен с доступом со стороны фронта и этот сервис уже есть и он работает по gRPC? А если такой сервис нужно ещё разработать, то лучше сразу выбрать для него вариант взаимодействия с фронтом на основе http 1.1, чтобы не резать гланды через ж...
Да, все так) Добавлю, что есть еще вариант на уровне инфры это порешать, но это уже отдельная песня
@@olezhek28go спасибо за уточнение. Только приглядываюсь к теме, ещё много вопросов возникает.
А как будут обстоять дела с валидацией входящих/исходящих данных по http? Например, клиент передал слишком короткий пароль при регистрации или мы пытаемся отправить что-то невалидное. Я на сколько знаю можно в .proto добваить валидацию на каждое поле, вот теперь интересно как это все будет потом крутиться.
PS. Можно валидацию закинуть в структуры дтошек или моделей, но мне бы хотелось чтоб в контракте (.proto) были все валидации, типы, енамы... чтоб у людей на другой стороне не возникало никаких вопросов.
Да, можно в proto файле прописать, однако у этого есть риски) если завтра откажетесь от прото в целом, то придется ее переносить куда-то еще, поэтому можно в сервисном слое делать проверки)
@@olezhek28go Ок. А вообще, как люди использующие .proto в вашей компании знают какие constraints у полей? Есть отдельная дока или в комментариях к полям все расписано?
что такое "ручка", rpc?
Ага, эндпоинт по сути)
Не с праздного мниресу. А нафига такой путь? Профит в чем?
Профит в том, что все из одного прото файла генерится, а не из кучи мест)
@@olezhek28goВозьмите генератор API по swagger.
коллеги, как-то можно обойти bin/buf generate Failure: 403 Forbidden без VPN?
Боюсь иначе никак(
@@olezhek28go зараза.. у меня даже шадоусоксы заблочили...
почему не grpc-web ?
Не юзал его особо, вот и рассказал о том, с чем работал)
Олег у вас гибрид или фулл удаленка?
У меня удаленка) в офис гоняю ради интереса иногда, но не часто
log.Fatal если в первой горутине будет ошибка log Fatal вызовет os.Exit, и вторая горутина не завершится будет висеть в процессах ? Не будет graceful shutdown ?
Ошибка подмечена верно, но особых проблем на самом деле не будет, так как когда ос экзит случится и процесс помрет, то и все гурутины грохнутся)
Как объяснить архитектуру решения в стиле домен контроллер пользователь за одну минуту😜
Что-то не очень выкупил при чем тут это)
@@olezhek28goв первую же минуту ролика сразу накидал решение проблемы, на пальцах объяснив проблему… когда рассказывал про прокси
Ааа, речь об этом:)
жалко сильно режет производительность
Как говорится, за удобство нужно платить)
Слишком много магии в одном ролике - и такую тему объяснил и пул реквесты мгновенно создаются и файлики многновенно скачиваются
а в чём магия то? Надо были сидеть и молча ждать, как простая скачка файлов идёт?) Ну а с коммита на коммит сами можете попрыгать, репа то в описании есть)
@@olezhek28go а магия в монтаже :) Спасибо за видео очень полезное