то есть по сути это всё гейтвеи и они покрывают одну и ту же глобальную задачу - конвертировать http в grpc?
Читать полностью…всем привет!
такой вопрос, нужно реализовать следующую архитектуру (см скрин)
два простых сервиса на го написал, но что должно быть на месте gRPC API Gateway?? Попытался нагуглить, где-то за этим отправляют к EnvoyProxy, где-то отправляют сюда (https://github.com/grpc-ecosystem/grpc-gateway). Кто прав?
впервые использую gRPC, поэтому возможно глупый вопрос
Есть, огонь. Можно заюзать интерцептор и в своем коде вообще не париться за валидацию
Читать полностью…Доброго времени! Коллеги, подскажите пожалуйста, может кто-то пользовался библиотекой go-wca, вот этой: https://github.com/moutend/go-wca/
либо, может кто-то пользовался другой аналогичной библиотекой для работы с Windows CoreAudioAPI?
Есть довольно примитивный код, который устанавливает громкость для процесса по его ID, на C#, пытаюсь перенести его на Go, но не могу понять с какой стороны к этой библиотеке подходить, пример на C#: https://pastepad.net/24gmb8f19w
Как не пытался — постоянно ошибки сыпет, то указатель пустой, то ещё чего... Если кто-то с подобным сталкивался, подскажите пожалуйста, откуда там начинать хотя бы
Добрый день, подскажите, есть у кого опыт с данным валидатором proto файлов:
https://github.com/bufbuild/protoc-gen-validate, нужна помощь в его настройке
Стоит выбрать тот, какой будет нравится. Но вообще правильно сказали - нужен хотя-бы какой-то опыт на другом языке программирования. В голанге всё слишком абстрактно, а работать приходится с вещами, где абстрактного понимания может быть недостаточно
Читать полностью…и подскажите пожалуйста где можно обучениться созданию нейросетям на golang gorgonia
Читать полностью…Зачем тогда некое устройство А, если стрим должен продолжаться даже без него. Эт больше похоже на общение между клиентами
Читать полностью…гейтвей может выполнять разные задачи. В том числе конверирование протоколов.
В учебных целях можно и свою реализацию сделать.
Рамакс
Формат работы: удаленка/гибрид/офис на ваш выбор
Москва, Дербеневская набережная
Занятость: полная или частичная
Зарплатная вилка: 230-300 к при полной загрузке, при частичной - оплата по часам
Проект: реализация архитектуры, включающей высоконагруженные сервисы по расчетам заявок клиентов в режиме real-time, шины и нескольких интеграций.
Что нужно делать:
- Разработка функциональности на Golang;
- Проведение код-ревью разработки команды;
- Оптимизация решений с точки зрения информационной безопасности продукта, а также отказоустойчивости, масштабирования и производительности;
- Участие в проведении тестирования (интеграционного, нагрузочного);
- Сопровождение работы в проде.
Нужны:
- Опыт разработки на Golang (основной язык) от 3-х лет;
- Опыт разработки с нуля системы любой сложности от идеи до стабильно работающего под высокой нагрузкой решения;
- Знание алгоритмов и структур данных;
- Опыт работы со средствами контейнеризации и оркестрации (Docker, Kubernetes);
- Знание о работе in-memory DB (Tarantool);
- Знание NATS, GitLab CI/CD;
Опыт работы Team Lead-ом будет очень полезен
🔖Ключевые навыки:
Golang
Go
Docker
Kubernates
NATS
GitLab
tg: novikovavilova
Hiring Senior Golang Developer
Remote
Check out this job at RahatVPN:
https://www.linkedin.com/jobs/view/3762648846
В го имхо это уравновешено скудным набором ключевых слов и операторов, поэтому довольно легко читается
Читать полностью…Всем привет. Я писал на Java и сейчас на Scala, стало интересно, чем компенсируется многословность языка Го? Интересно мнение тех, кто пишет на го, особенно если перешел из другого языка. Может дело в привычке и когда пишешь на Го, то не обращаешь внимание на такие вещи. Но я со временем ощутил, что чем короче и лаконичнее код, тем быстрее читаешь, меньше устаешь и тоже понимаешь что написано. С другой стороны, многословность значит может не играть такую роль по сравнении с плюсом языка в его предметной области. Но интересно было бы послушать мнение
Читать полностью…Всем привет, если кто-то работал с пакетом reflect, можете подсказать
у меня есть такая структура
type Interpreter struct {
ctx *core.EvalContext
stepMode bool
onError OnError
onBreakpoint OnBreakpoint
breakpoints map[uuid.UUID]map[int]struct{}
modules ModuleMap
}
Когда я пытаюсь её десереализовать после сереализации, получаю такую ошибку reflect: reflect.Value.Set using value obtained using unexported field.
Это происходит когда десереализуется поле Eval структуры EvalContext
type EvalContext struct {
Runtime *runtime.Context
Thread *runtime.Thread
OutputQueue *output.Queue
Communication CommunicationType
Channel ChannelType
Messenger MessengerType
Collocutor *Collocutor
OnStatusChange OnStatusChange
Eval Eval
TraceCtx context.Context
nluSettings *nlu.Settings
}
Сам тип поля выглядит так type Eval = func(thread *runtime.Thread, nodeId uuid.UUID).
Но если я отдельно провожу сереализацию и десереализацию поля ctx всё работает корректно, никто не знает, с чем это может быть связано?
Но стажировки и джунов надо поискать ещё)) Я чаще замечаю как просто компания внедряет голанг и какой-то разработчик из этой же компании решает свичнутся на го. А так варианты событий следующие если выбор только го и всё:
1. Ждать пока голанг дальше будет обороты набирать и за это время становится миддлом как-то.
2. Второй вариант ничем от первого не отличается, просто не ждать, писать код, учится, можно воспользоваться простым синтаксисом голанга для изучения разных технологий и работы с ними, так как концепция везде одинаковая, ты на это потратишь намного меньше времени чем условный джавист, а там уже может быть и работу найдёшь голанг разработчиком или же оставишь этот навык как очень полезным и отложишь до лучших времён, пойдёшь учить какой-то старенький легаси язык. Но также не стоит забывать, что на голанге ты можешь также приложения разрабатывать как и на другом языке, даже эффективнее, поэтому без денег ты вряд-ли останешься, но из-за простоты голанга, в принципе, можно даже исходя из своего свободного времени добавить на всякий случай ещё какой-то легаси язык.
Я думаю, нам сначала нужно создать какой-то сервер и клиент для эмуляции. На сервере я наверное сделал бы основное ядро обработки запросов от клиента, и также добавил обёртку, которая выступала бы как "сигнал", и всегда при попытке передачи пакета - шла бы проверка этого сигнала на этом этапе слоя, после чего переходило в ядро. Соединение между клиентом и сервером наверное проходило бы по вебсокетам.
Но также интересно, что значит не заканчивался бы стрим? Тебе нужно чтобы даже когда данные не передаются с клиента на сервер, активность всё равно сохранялась? Или тебе нужно чтобы в случае неудач - не прерывался поток?
Если второе - пусть будет наш механизм работать по принципу Backoff, когда данные передаются неуспешно - поток не прерывается, но попытка следующего запроса увеличивается на Х времени (идёт своего рода заморозка передачи данных на сервер с клиента А, в том время как клиент В может спокойно продолжать общение с сервером), при второй попытке - время можно увеличить на Х от первой попытки.
Таким образом сервер должен будет продолжать работу не прерывая поток, но замораживая общение с клиентом, от которого приходят данные неуспешно
Потому что их просто рассматривать не будут, изначально нужен опыт.
Вот такая сейчас ситуация на рынке го. 🤷♂