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

  Рет қаралды 2,890

Просто о сложном. CutCode

Просто о сложном. CutCode

Күн бұрын

Пікірлер: 43
@maxon861
@maxon861 14 күн бұрын
Довольно интересно. Легкая подача. Еще будет интересно посмотреть развитие сервиса под асинхонщину и рпс.
@CutCodeRu
@CutCodeRu 14 күн бұрын
Спасибо, хорошая идея
@vesh95
@vesh95 13 күн бұрын
Если правильно выражаюсь, то handler и так асинхронно работает. Но как вариант можно рассмотреть создание очереди на скрины, а потом вытаскивание из этой очереди по порядку. Как для упражнения по структурам и асинхронной обработке самое то. Запускается n + 1 раз http GET /resource/pull (страницы ждут ответа) и затем POST /resource (передаем в запросе данные) n раз. По порядку запросов выдаются данные (порядок запрос-клиент соблюдается) и 1 должен оставаться дожидаться ответа. Сам попробую такое поделать как упражнение + простая очередь сообщений реализуется
@maxon861
@maxon861 13 күн бұрын
@@vesh95 Именно это я и имел в виду. Еще интересна не просто очередь, а устойчивая к падениям сервиса, например.
@vesh95
@vesh95 9 күн бұрын
@ Ну это решается просто сохранением данных на накопителе, ну или репликацией. В первом можно sqlite использовать, а во втором придется решить проблему маршрутизации/балансировки. Можно Алекса Сюя почитать, он в общих чертах рассказывает о масштабах приложения и как все обустроить, чтобы не сложилось всё доминошкой. Ну вообще когда люди задаются такими вопросами это уже указывает на уровень, даже не то что изучил это человек или нет, как мне кажется)
@vesh95
@vesh95 9 күн бұрын
@@maxon861 Мы с другом вообще раскуривали тему, того сколько денег необходимо заработать на приложении и какой уровень rpm можно сделать максимально допустимый для сервиса. Ответ убил))) Чтобы исчерпать ключ типа u big int понадобятся все года 🤣
@ell1ar
@ell1ar 7 күн бұрын
Ребятки, знатоки, сеньоры-помидоры, кто писал игры на go? Кто-нибудь шарит за ESC и DOTS? Просто в го многопоточка выглядит как что-то абсолютно привычное, а в играх как раз было бы классно в цикле распараллелить вычисления в системах. Хочу попробовать в геймдев, но не в шарпы и плюсы, да даже в джаву, а в что-то подобное, простое и прикольное
@vesh95
@vesh95 14 күн бұрын
1:08:32 Проорался 😄 В го обрабатывать ошибки нужно с умом. Я вот когда читал по го книжку, как раз моделировал в голове ситуацию, когда незначительная и впролне правильная ошибка кладёт приложение)) Ты тут немного неправильно сделал. Там прямо из handler должен контекст первым параметром (это соглашение такое) в sacptureScreenshot передаваться, и в handler следить за дедлайном, а ты из-за него log.Error сделал в sacptureScreenshot а это панику вызывает и соответственно весь сервис ложится))
@CutCodeRu
@CutCodeRu 14 күн бұрын
@@vesh95 глянем в след стриме
@prosklad
@prosklad 14 күн бұрын
Очень круто спасибо
@vesh95
@vesh95 14 күн бұрын
Цукалос. М., "Golang для профи " читаю сейчас, классная книга, показывает как правильно писать консольки на go (да и вообще в целом) а не как "введите число a:, введите число b:", вот здесь действительно возвышенность есть некоторая, но относительно универских и технарских задачек) Хотя на php тоже laravel и yii2 реализует у себя нормальные args --flags команды.
@CutCodeRu
@CutCodeRu 14 күн бұрын
Спасибо! Попробую найти время и почитать
@vesh95
@vesh95 13 күн бұрын
@@CutCodeRu Ну там лучше над примерами кода, особенно по асинхронике, экспериментировать. Там по "сюжету" создаём простой справочник номеров. Сначала в терминале, потом с использованием многоуровневых команд, далее всё это переписывается на веб и пишется консольный клиент под это всё, а дальше ещё не дочитал, но там как рассматривается ещё взаимодействие по ws, tcp/udp, grpc. В общем интересная книжка + подсказывают лучшие практики организации UX этого ПО для потребителя
@OkaySoft
@OkaySoft 13 күн бұрын
Скажите пожалуйста, как вы считаете, в микросервисной архитектуре, базу данных создава отдельно под микросервис или общую, есть ведь проблема с JOIN?
@ivan_adamovich
@ivan_adamovich 12 күн бұрын
микросервисная архитектура это лишь категория архитектур. Это все равно что спросить "где должен быть двигатель у машины". Это слишком общий вопрос. У легковой машины под капотом а у стиральной за барабаном 🤷‍♂
@DNKND
@DNKND 11 күн бұрын
Если база не отдельная то это не микросервисы. Это уже какой то гибрид со всеми вытекающими..
@ivan_adamovich
@ivan_adamovich 11 күн бұрын
@@DNKND там скорее вопрос был в том, что под каждый контейнер с микросервисом ставится своя база или же у всех микросервисов общая
@haskelllisp5998
@haskelllisp5998 14 күн бұрын
Ну вот и ты прав, все время приходится костылить что то под проект на php, почему?
@KDenisG
@KDenisG 13 күн бұрын
Полностью поддерживаю Данила в плане питона. Медленный, дырявый, нетипизированный, с убогим синтаксисом, с убогой реализацией ооп язык
@vesh95
@vesh95 14 күн бұрын
На go пишут - гоферы, а на rust - растаманы))
@CutCodeRu
@CutCodeRu 14 күн бұрын
то уж гопники и растаманы))
@Edvard-Aliev
@Edvard-Aliev 14 күн бұрын
Ну это очевидный этап, с php на go, я так же сделал и вам советую!
@optimizeit
@optimizeit 14 күн бұрын
я тоже в процессе! расскажи легко было найти работу в новом стеке?
@Edvard-Aliev
@Edvard-Aliev 14 күн бұрын
@ нет, 5 собесов и в озон.tech взяли
@vashkatsi
@vashkatsi 15 күн бұрын
А ссылка на репу будет?
@CutCodeRu
@CutCodeRu 15 күн бұрын
@@vashkatsi могу сделать, надо?
@vashkatsi
@vashkatsi 14 күн бұрын
@@CutCodeRu надо
@CutCodeRu
@CutCodeRu 14 күн бұрын
@ github.com/lee-to/go-screenshoter-stream
@Seraf_
@Seraf_ 15 күн бұрын
Получается php умер
@CutCodeRu
@CutCodeRu 15 күн бұрын
@@Seraf_ с чего бы?)
@optimizeit
@optimizeit 14 күн бұрын
нет и не умрет)
@haskelllisp5998
@haskelllisp5998 14 күн бұрын
Кроме как под веб и вывод динамического HTML он мало пригоден
@haskelllisp5998
@haskelllisp5998 14 күн бұрын
В плане синтаксиса и простоты , по-моему python лучший, что не скажешь про php, PHP как по мне убогий язык, даже js если на typescript - е и то лучшемв разы
@CutCodeRu
@CutCodeRu 14 күн бұрын
вкусовщина видимо
@slikeiv4477
@slikeiv4477 14 күн бұрын
@@haskelllisp5998 ну это просто привыкание к синтаксису, я когда проекты на js вижу , глаза краснеют
@NK-kg1qv
@NK-kg1qv 13 күн бұрын
про Питон это шутка? там только гоноеды разберуться что написано, особенно в больших проектах
@slikeiv4477
@slikeiv4477 14 күн бұрын
жду симфони
@CutCodeRu
@CutCodeRu 14 күн бұрын
ощущение что мало желающих
@slikeiv4477
@slikeiv4477 14 күн бұрын
@CutCodeRu да есть такое. По golang если есть желание можно ознакомиться с книжкой Pro Go 2022 apress, там автор книги делает небольшой микро фреймворк (набор пакетов) для себя , где есть базовый функционал: авторизаци я, валидация, даже DI есть, можно подчерпнуть инфу оттуда. Я начинал с нее изучение.
@Максим-в3ф6о
@Максим-в3ф6о 14 күн бұрын
​@@CutCodeRu, желающие есть! Мы ждем)
FastAPI vs Go (Golang) vs Node.js: Performance & Price
13:12
Anton Putra
Рет қаралды 50 М.
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Дайджест новостей по PHP, Laravel и Symfony. Обзор за декабрь 2024
28:51
Просто о сложном. CutCode
Рет қаралды 1,4 М.
Релиз MoonShine v3. Декабрь 2024
1:22:17
Просто о сложном. CutCode
Рет қаралды 1,6 М.
Как устроена сирена воздушной тревоги?
25:34
Музей Подземная Москва — Live
Рет қаралды 140 М.
Redis за 20 минут
23:22
suchkov tech
Рет қаралды 166 М.
Введение в gRPC: пишем сервер на Go
18:03
Gopher School (Уроки по Golang)
Рет қаралды 62 М.
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН