Пишем микросервис на Go

Поділитися
Вставка
  • Опубліковано 28 січ 2025

КОМЕНТАРІ • 43

  • @ell1ar
    @ell1ar 8 днів тому +1

    Ребятки, знатоки, сеньоры-помидоры, кто писал игры на go? Кто-нибудь шарит за ESC и DOTS? Просто в го многопоточка выглядит как что-то абсолютно привычное, а в играх как раз было бы классно в цикле распараллелить вычисления в системах. Хочу попробовать в геймдев, но не в шарпы и плюсы, да даже в джаву, а в что-то подобное, простое и прикольное

  • @maxon861
    @maxon861 15 днів тому +2

    Довольно интересно. Легкая подача.
    Еще будет интересно посмотреть развитие сервиса под асинхонщину и рпс.

    • @CutCodeRu
      @CutCodeRu  15 днів тому

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

    • @vesh95
      @vesh95 14 днів тому

      Если правильно выражаюсь, то handler и так асинхронно работает. Но как вариант можно рассмотреть создание очереди на скрины, а потом вытаскивание из этой очереди по порядку. Как для упражнения по структурам и асинхронной обработке самое то.
      Запускается n + 1 раз http GET /resource/pull (страницы ждут ответа) и затем POST /resource (передаем в запросе данные) n раз. По порядку запросов выдаются данные (порядок запрос-клиент соблюдается) и 1 должен оставаться дожидаться ответа.
      Сам попробую такое поделать как упражнение + простая очередь сообщений реализуется

    • @maxon861
      @maxon861 14 днів тому

      @@vesh95 Именно это я и имел в виду. Еще интересна не просто очередь, а устойчивая к падениям сервиса, например.

    • @vesh95
      @vesh95 10 днів тому

      @ Ну это решается просто сохранением данных на накопителе, ну или репликацией. В первом можно sqlite использовать, а во втором придется решить проблему маршрутизации/балансировки.
      Можно Алекса Сюя почитать, он в общих чертах рассказывает о масштабах приложения и как все обустроить, чтобы не сложилось всё доминошкой.
      Ну вообще когда люди задаются такими вопросами это уже указывает на уровень, даже не то что изучил это человек или нет, как мне кажется)

    • @vesh95
      @vesh95 10 днів тому

      @@maxon861 Мы с другом вообще раскуривали тему, того сколько денег необходимо заработать на приложении и какой уровень rpm можно сделать максимально допустимый для сервиса. Ответ убил))) Чтобы исчерпать ключ типа u big int понадобятся все года 🤣

  • @prosklad
    @prosklad 15 днів тому +1

    Очень круто спасибо

  • @vesh95
    @vesh95 15 днів тому +1

    1:08:32 Проорался 😄 В го обрабатывать ошибки нужно с умом. Я вот когда читал по го книжку, как раз моделировал в голове ситуацию, когда незначительная и впролне правильная ошибка кладёт приложение))
    Ты тут немного неправильно сделал. Там прямо из handler должен контекст первым параметром (это соглашение такое) в sacptureScreenshot передаваться, и в handler следить за дедлайном, а ты из-за него log.Error сделал в sacptureScreenshot а это панику вызывает и соответственно весь сервис ложится))

    • @CutCodeRu
      @CutCodeRu  15 днів тому

      @@vesh95 глянем в след стриме

  • @vesh95
    @vesh95 15 днів тому +1

    Цукалос. М., "Golang для профи " читаю сейчас, классная книга, показывает как правильно писать консольки на go (да и вообще в целом) а не как "введите число a:, введите число b:", вот здесь действительно возвышенность есть некоторая, но относительно универских и технарских задачек)
    Хотя на php тоже laravel и yii2 реализует у себя нормальные args --flags команды.

    • @CutCodeRu
      @CutCodeRu  15 днів тому

      Спасибо! Попробую найти время и почитать

    • @vesh95
      @vesh95 14 днів тому

      @@CutCodeRu Ну там лучше над примерами кода, особенно по асинхронике, экспериментировать.
      Там по "сюжету" создаём простой справочник номеров. Сначала в терминале, потом с использованием многоуровневых команд, далее всё это переписывается на веб и пишется консольный клиент под это всё, а дальше ещё не дочитал, но там как рассматривается ещё взаимодействие по ws, tcp/udp, grpc. В общем интересная книжка + подсказывают лучшие практики организации UX этого ПО для потребителя

  • @OkaySoft
    @OkaySoft 14 днів тому

    Скажите пожалуйста, как вы считаете, в микросервисной архитектуре, базу данных создава отдельно под микросервис или общую, есть ведь проблема с JOIN?

    • @ivan_adamovich
      @ivan_adamovich 13 днів тому

      микросервисная архитектура это лишь категория архитектур. Это все равно что спросить "где должен быть двигатель у машины". Это слишком общий вопрос. У легковой машины под капотом а у стиральной за барабаном 🤷‍♂

    • @DNKND
      @DNKND 12 днів тому

      Если база не отдельная то это не микросервисы. Это уже какой то гибрид со всеми вытекающими..

    • @ivan_adamovich
      @ivan_adamovich 12 днів тому

      @@DNKND там скорее вопрос был в том, что под каждый контейнер с микросервисом ставится своя база или же у всех микросервисов общая

  • @haskelllisp5998
    @haskelllisp5998 15 днів тому

    Ну вот и ты прав, все время приходится костылить что то под проект на php, почему?

  • @KDenisG
    @KDenisG 15 днів тому +2

    Полностью поддерживаю Данила в плане питона. Медленный, дырявый, нетипизированный, с убогим синтаксисом, с убогой реализацией ооп язык

  • @vesh95
    @vesh95 15 днів тому

    На go пишут - гоферы, а на rust - растаманы))

    • @CutCodeRu
      @CutCodeRu  15 днів тому

      то уж гопники и растаманы))

  • @Edvard-Aliev
    @Edvard-Aliev 15 днів тому

    Ну это очевидный этап, с php на go, я так же сделал и вам советую!

    • @optimizeit
      @optimizeit 15 днів тому

      я тоже в процессе! расскажи легко было найти работу в новом стеке?

    • @Edvard-Aliev
      @Edvard-Aliev 15 днів тому

      @ нет, 5 собесов и в озон.tech взяли

  • @vashkatsi
    @vashkatsi 16 днів тому

    А ссылка на репу будет?

    • @CutCodeRu
      @CutCodeRu  16 днів тому +1

      @@vashkatsi могу сделать, надо?

    • @vashkatsi
      @vashkatsi 16 днів тому +1

      @@CutCodeRu надо

    • @CutCodeRu
      @CutCodeRu  15 днів тому +1

      @ github.com/lee-to/go-screenshoter-stream

  • @Seraf_
    @Seraf_ 16 днів тому

    Получается php умер

    • @CutCodeRu
      @CutCodeRu  16 днів тому +3

      @@Seraf_ с чего бы?)

    • @optimizeit
      @optimizeit 15 днів тому +1

      нет и не умрет)

  • @haskelllisp5998
    @haskelllisp5998 15 днів тому

    Кроме как под веб и вывод динамического HTML он мало пригоден

  • @haskelllisp5998
    @haskelllisp5998 15 днів тому

    В плане синтаксиса и простоты , по-моему python лучший, что не скажешь про php, PHP как по мне убогий язык, даже js если на typescript - е и то лучшемв разы

    • @CutCodeRu
      @CutCodeRu  15 днів тому +1

      вкусовщина видимо

    • @slikeiv4477
      @slikeiv4477 15 днів тому

      @@haskelllisp5998 ну это просто привыкание к синтаксису, я когда проекты на js вижу , глаза краснеют

    • @NK-kg1qv
      @NK-kg1qv 14 днів тому

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

  • @slikeiv4477
    @slikeiv4477 15 днів тому

    жду симфони

    • @CutCodeRu
      @CutCodeRu  15 днів тому

      ощущение что мало желающих

    • @slikeiv4477
      @slikeiv4477 15 днів тому

      @CutCodeRu да есть такое. По golang если есть желание можно ознакомиться с книжкой Pro Go 2022 apress, там автор книги делает небольшой микро фреймворк (набор пакетов) для себя , где есть базовый функционал: авторизаци я, валидация, даже DI есть, можно подчерпнуть инфу оттуда. Я начинал с нее изучение.

    • @Максим-в3ф6о
      @Максим-в3ф6о 15 днів тому

      ​@@CutCodeRu, желающие есть! Мы ждем)