Herman
Ифами можно
Zohidbek Mengliboyev
Hi guys!
I have a question:
Is it possible to give an empty to the request and return reponse as parts of rpc function?
Anonymous
create empty request message
Anonymous
and send empty string
Zohidbek Mengliboyev
and send empty string
Hi, bro!
I meant:
rpc HomePageUser(google.protobuf.Empty) returns (HomePageUserResponse) {}
message HomePageUser {
string id = 1;
string full_name = 2;
string user_name = 3;
string profile_photo = 4;
}
Anonymous
but u already have one
Anonymous
ur function should work fine
Anonymous
whats the problem?
Zohidbek Mengliboyev
Zohidbek Mengliboyev
Thanks
Олег
Добрый день. Подскажите, есть ли уже готовый инструмент который позволяет из содержимого сложно-вложенного POST (application/x-www-form-urlencoded) запроса получить map по структуре схожий с PHP массивом $_POST при условии что мы не знаем структуру входных данных или в один endpoint могут приходить данные разных форматов. На сколько я понимаю в Request.Form данные представлены в виде map[string][]string и по этой причине структура получается "плоской" и в итоге в этой мапе получается запись вида phone[update][0][custom_fields][33][id]: [1989572], а в php в $_POST я бы увидел
[
'phone' => [
"update" => [
"0" => [
"custom_field" => [
"33" => [
"id" => "1989572",
],
],
],
],
],
]
Есть ли способ добиться подобного представления в GO стандартными способами/проверенными внешними либами?
Aleksey
А что там на входе? Как выглядит тело запроса?
Олег
К примеру вот:
leads[status][0][id]=10939363&leads[status][0][name]=&leads[status][0][status_id]=21721936&leads[status][0][old_status_id]=21721930&leads[status][0][price]=&leads[status][0][responsible_user_id]=2778463&leads[status][0][last_modified]=1538396718&leads[status][0][modified_user_id]=2778463&leads[status][0][created_user_id]=2778463&leads[status][0][date_create]=1538385281&leads[status][0][pipeline_id]=1357129&leads[status][0][tags][0][id]=531499&leads[status][0][tags][0][name]=test_event&leads[status][0][account_id]=21721924&leads[status][0][custom_fields][0][id]=629659&leads[status][0][custom_fields][0][name]=roistat&leads[status][0][custom_fields][0][values][0][value]=4&account[subdomain]=intexcons
Олег
но реально данные могут приходить более сложно структурированы внутри
Aleksey
А, ну тут да, php массивы как они есть)
Олег
т.е. способа нет?
Олег
Видимо придется делать свой велосипед :(
Aleksey
т.е. способа нет?
Увы, готового не знаю. В го из пыхо мира знаю лишь про реализацию формата serialize. Но тут совсем не про это речь.
whois
Друзья, как в функции main при тестировании залогировать ошибку и выйти?
Вот в testing.T есть куча методов, типа t.Fatal(err)
Но в testing.M нет этого
func TestMain(m *testing.M) {
data, err := muInitFunc()
m.Fatal(err)
code := m.Run()
os.Exit(code)
}
Anonymous
если я правильно понял: тебе нужно запринтить в консоль ошибку?
Anonymous
если да, то в чем проблема использовать panic(err)
whois
Anonymous
так а в чем проблема то?
whois
Anonymous
красивое решения для обработки ошибок в го - это целая история
Maks
Aleksey
Да я тут давно. Просто обычно молчу :)
Maks
Я дважды был на конфах в спб и дважды так получилось что ты выступал на них))) Первая от ВКшечки была про бэкенд, вторая вот по го последняя в селектеле))))))))
Maks
Ну да я заметил)
Aleksey
Было дело
Ig
Было дело
Вот я помню, вывод был , что это не работает. Сейчас мнение изменилось? Я смотрю на ebiten вполне успешно 10 игр автор фреймворка выпустил.
Maks
Хз, я в геймдеве на юнити поработал, понял что геймдев такая шляпа шляпная)))) Ну и лучше плюсов пока не придумали. Так как в играх важна максимальная производительность. Да и в РФ проектов можно сказать нет. Успешных довольно мало.
Были конечно крутые инди проекты, но например тарков долго делался и столкнулся с проблемой производительности, а Punch Club не требует большого кол-ва вычислительных ресурсов))))
Maks
Крч понял что не моё)) Друг тоже проработав много лет сливается в бэкенд))) Потому что фронтовые задачи бесят))))))
Aleksey
Вот только у меня фокус был на web версии, а там прогресса не видел
Aleksey
Aleksey
Скорее уж кривая работа с gpu
Maks
Почти все движки пишут на плюсах. 99% ААА проектов это собственный движок.
Alexander
Herman
Alexander
В смысле?
Herman
я просто не знаю, как мусор собирается в играх
Herman
по идее он собираться должен не в рандомные моменты
Aleksey
Так же, как и в java серверах и прочем )
Aleksey
Да и в го, что уж там
whois
Кстати-кстати...
Спасибо, об этом я не подумал
Ig
Maks
Движком будет по сути любая обертка над типичными ситуациями. Левел дизайн например когда делается - он делается же в движке.
Maks
У меня друг много где в спб работал, и плюется. Везде дохрена глупых людей занимают важные должности технические.
Ig
Ig
А это сейчас топ. вообще в геймдеве. Но, там к стати С++
Vitaly
Кто-нибудь на Go имел дело с получением html от страницы, которая рендерится javascript'ом?
Нашел одну либу, но она сумасшедшая, требует подключать chrome для рендеринга
Alexander
через chromedp делал, но там как раз хромиум используется
Vitaly
знакомый говорит, что на node js без подтягивания целого браузера это легко делается.
но не хотелось бы юзать связки с другими языками, а всё сделать на Go
Vitaly
делаю unofficial api к одному сайту
Null
Изучение Excelize с помощью Go
https://uproger.com/izuchenie-excelize-s-pomoshhyu-go/
@Golang_google
Emil
Мне предложили тему диплома
Lattice based crypto.
Исследование трудных задач на алгебраических решетках и их применений при построении современных криптосистем
Буду пытаться на го запрогать))0)
Anonymous
соболезную
Noname
Alexander
Зачем если есть chromedp?
Alexander
Цель же не смотреть как на разных браузерах будет
Ahmed
Hello guys, I've just joined the chanel and don't know what language you're speaking?
Alexey
Зачем если есть chromedp?
Да. Можно и его, раз уж на go свой web-драйвер для хрома реализовали. Если кто уже юзал - поделитесь впечатлениями.
Alexander
тут сравнение скорее нужно. мне не сильно удобно показалось и документации-примеров на многие фичи нет, хотя умеет много всего. нужно по хорошему писать свои оболочки над этим, вроде того, что получение элемента может зависнуть, и нет из коробки получить элемент с таймаутом. но насколько просто или тяжело общаться с селениумом я не знаю
Alexander
вот эта подбиблиотека например вообще черти знает чего позволяет сделать: https://github.com/chromedp/cdproto - но документации нет, а можно только смотреть какие-то примеры, писать в issue и может тогда общая логика использования дойдет(
Alexander
код супергромоздкий пожалуй получается. по мне для типового использования каким-нибудь не особо ярким программистом этой штуке нужен враппер
Ilya
Коллеги, прошу совета.
Организую кеш, нужно хранить текстовое поле (до 256 символов) и числовое значение (float)
Сохранять данные после перезагрузки не нужно, использовать БД не хотелось бы, количество значений ключей, до 3кк
Думал использовать Redis, но там ограничение ключа до 32 символов.
Буду благодарен за идеи, спасибо
Alexander
а пользоваться им что будет?
Vitaly
Ilya
Vitaly
Vitaly
Может взять хеш от него