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

ความคิดเห็น • 44

  • @Deopster
    @Deopster 7 หลายเดือนก่อน +1

    Как же это вовремя, рекомендации в очередной раз спасают. Как раз на проекте голову ломаем как нам на веб версию свечи отсылать, а тут решение.

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      рад, что в тему оказался)

  • @yarbersheer8559
    @yarbersheer8559 7 หลายเดือนก่อน +1

    Спасибо, хорошее описание

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Рад, что понравилось)

  • @delay_gryaz_chisto
    @delay_gryaz_chisto 7 หลายเดือนก่อน +1

    у команды git clone есть аргумент --depth , в котором можно указать сколько коммитов от мастера скачать. --depth=1 скачает только мастер, без остальной портянки.
    а про (хттп) метод update - наверное, put имели ввиду?

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Я что-ли пут назвал пушем?) оговорился похоже

    • @delay_gryaz_chisto
      @delay_gryaz_chisto 7 หลายเดือนก่อน

      @@olezhek28go пут апдейтом )

  • @yarbersheer8559
    @yarbersheer8559 7 หลายเดือนก่อน +1

    )) первый раз вижу, чтобы экзешнички в макоси появлялись))

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Ахах я конечно про бинари)

  • @user-be1ph3uf8l
    @user-be1ph3uf8l 7 หลายเดือนก่อน +1

    Правильно ли я понимаю что шлюз полезен, когда некий сервис нужен с доступом со стороны фронта и этот сервис уже есть и он работает по gRPC? А если такой сервис нужно ещё разработать, то лучше сразу выбрать для него вариант взаимодействия с фронтом на основе http 1.1, чтобы не резать гланды через ж...

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Да, все так) Добавлю, что есть еще вариант на уровне инфры это порешать, но это уже отдельная песня

    • @user-be1ph3uf8l
      @user-be1ph3uf8l 7 หลายเดือนก่อน

      @@olezhek28go спасибо за уточнение. Только приглядываюсь к теме, ещё много вопросов возникает.

  • @alex-0x6b
    @alex-0x6b 7 หลายเดือนก่อน

    А как будут обстоять дела с валидацией входящих/исходящих данных по http? Например, клиент передал слишком короткий пароль при регистрации или мы пытаемся отправить что-то невалидное. Я на сколько знаю можно в .proto добваить валидацию на каждое поле, вот теперь интересно как это все будет потом крутиться.
    PS. Можно валидацию закинуть в структуры дтошек или моделей, но мне бы хотелось чтоб в контракте (.proto) были все валидации, типы, енамы... чтоб у людей на другой стороне не возникало никаких вопросов.

    • @olezhek28go
      @olezhek28go  6 หลายเดือนก่อน +2

      Да, можно в proto файле прописать, однако у этого есть риски) если завтра откажетесь от прото в целом, то придется ее переносить куда-то еще, поэтому можно в сервисном слое делать проверки)

    • @alex-0x6b
      @alex-0x6b 6 หลายเดือนก่อน

      @@olezhek28go Ок. А вообще, как люди использующие .proto в вашей компании знают какие constraints у полей? Есть отдельная дока или в комментариях к полям все расписано?

  • @artie5913
    @artie5913 7 หลายเดือนก่อน +1

    что такое "ручка", rpc?

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน +1

      Ага, эндпоинт по сути)

  • @rerurkful
    @rerurkful 7 หลายเดือนก่อน +1

    Не с праздного мниресу. А нафига такой путь? Профит в чем?

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Профит в том, что все из одного прото файла генерится, а не из кучи мест)

    • @TheSimplesnake
      @TheSimplesnake 7 หลายเดือนก่อน

      ​@@olezhek28goВозьмите генератор API по swagger.

  • @yarbersheer8559
    @yarbersheer8559 6 หลายเดือนก่อน

    коллеги, как-то можно обойти bin/buf generate Failure: 403 Forbidden без VPN?

    • @olezhek28go
      @olezhek28go  6 หลายเดือนก่อน

      Боюсь иначе никак(

    • @yarbersheer8559
      @yarbersheer8559 6 หลายเดือนก่อน

      @@olezhek28go зараза.. у меня даже шадоусоксы заблочили...

  • @vladis1avchik
    @vladis1avchik 7 หลายเดือนก่อน +1

    почему не grpc-web ?

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Не юзал его особо, вот и рассказал о том, с чем работал)

  • @Kotl1n
    @Kotl1n 7 หลายเดือนก่อน

    Олег у вас гибрид или фулл удаленка?

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน +1

      У меня удаленка) в офис гоняю ради интереса иногда, но не часто

  • @qwertymaster1195
    @qwertymaster1195 7 หลายเดือนก่อน +1

    log.Fatal если в первой горутине будет ошибка log Fatal вызовет os.Exit, и вторая горутина не завершится будет висеть в процессах ? Не будет graceful shutdown ?

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Ошибка подмечена верно, но особых проблем на самом деле не будет, так как когда ос экзит случится и процесс помрет, то и все гурутины грохнутся)

  • @user-pg8ry1tm3t
    @user-pg8ry1tm3t 7 หลายเดือนก่อน

    Как объяснить архитектуру решения в стиле домен контроллер пользователь за одну минуту😜

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน

      Что-то не очень выкупил при чем тут это)

    • @user-pg8ry1tm3t
      @user-pg8ry1tm3t 7 หลายเดือนก่อน

      @@olezhek28goв первую же минуту ролика сразу накидал решение проблемы, на пальцах объяснив проблему… когда рассказывал про прокси

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน +1

      Ааа, речь об этом:)

  • @hpntic
    @hpntic หลายเดือนก่อน

    жалко сильно режет производительность

    • @olezhek28go
      @olezhek28go  หลายเดือนก่อน

      Как говорится, за удобство нужно платить)

  • @k1ndplay
    @k1ndplay 7 หลายเดือนก่อน +1

    Слишком много магии в одном ролике - и такую тему объяснил и пул реквесты мгновенно создаются и файлики многновенно скачиваются

    • @olezhek28go
      @olezhek28go  7 หลายเดือนก่อน +1

      а в чём магия то? Надо были сидеть и молча ждать, как простая скачка файлов идёт?) Ну а с коммита на коммит сами можете попрыгать, репа то в описании есть)

    • @k1ndplay
      @k1ndplay 7 หลายเดือนก่อน +1

      @@olezhek28go а магия в монтаже :) Спасибо за видео очень полезное