Slava
Спасибо!
а ты что-то на графкл делаешь?
Oleg
а ты что-то на графкл делаешь?
Нет, но задумался об этом. Не использовал из за того что нужен был Relay. Немного не уследил за фронтендом. Сейчас все проще стало, попробую внедрить.
Убрать сотни api rest обработчиков заманчивая идея
Oleg
Slava
я щас хочу внутреннюю тулзу перевести на это, а то у меня и инклуды полей были и нормализации в react/redux данных, вообщем всё что в graphql из коробки
Slava
но пока не могу найти нормального фреймворка для го =( хоть свой пиши
Oleg
Slava
ну тут сильно проще soap всё
Slava
типа rest на стероидах
Slava
круто что можно прям с сервера через подписки клиент обновлять
Oleg
Slava
ну я потыкал плейграунд гитхаба - мне понравилось
Oleg
Slava
да, это конечно, парсеры я сам писать не хочу, да и некогда =)
Slava
вот самое близкое мне https://github.com/neelance/graphql-go/blob/new-resolvers/example/starwars/starwars.go#L291, но я хочу чтобы по схеме вообще всё генерировалось, как в grpc и нужно было только интерфейсы реализовать
Slava
мне кажется генерация graphql из кода го - это вообще неверно
Slava
но наверное удобно для простых случаев
Oleg
Oleg
На этом можно сделать простой генератор. Еще, было бы здорово мочь использовать существующие модели.
Valentin
Я правильно понимаю, что GraphQL это альтернатива REST?
Valentin
И это просто описание протокола?
Michael
ты говоришь серверу что и в каком виде тебе надо
Michael
типа киллерфича
Valentin
Гошный код выглядит громоздко -)
Michael
судя по описанию)
Michael
для graphql?
Valentin
да, из примеров репо выше
Valentin
Надо будет поковырять эту штуку на досуге, на сайте graphhq хорошо описано
Valentin
читай разрекламировано)
Мерль
Nikita
Господа, есть желание хранить запросы к базе и прочие ресурсы во внешнем файле. Есть ли какие-то встроенные решения аля джававского Resource Bundle?
Nikolay
Michael
хм
Nikita
Michael
при сборке компилятор Го может задать значение нужной переменной
Nikita
ну и вообще тогда интересуют go-way best practices по хранению ресурсов
Nikita
идея в том, чтобы хранить sql запросы в файле на диске, удобно править их оттуда при необходимости, а не искать места в коде, где они захардкожены
Nikolay
можно подробнее?
один из вариантов, который я использовал: https://github.com/jteeuwen/go-bindata и таких решений не одно, под свою задачу уже можно что-то подыскать
Nikolay
Michael
go build -ldflags "-X main.sqlspgetti=$(supersql)"
Michael
😂
Nikolay
Zhenja
в json/xml не удобно хранить sql. Ну когда он по 1к символов на запрос
Nikita
спасибо за ответы)
Максим
подскажите, плз, как правильно называются функции, которые создаются внутри другой функции и не имеют имени или как правильно написать
defer func(){
//То что должно выполнится перед завершением
}
Nikita
анонимные?
Максим
да
Zhenja
кроссворд отгадываете?
Michael
job interview
Aleksandr
да
так и называются - анонимные
Максим
нашел, но непонятно к чему такой синтаксис - func(){}(), зачем там две пары дужек?
Aleksandr
Zhenja
создать и сразу вызвать её
Zhenja
f=func(){}
f()
Максим
Dmitry
Почему питон, а не Go?
Потому что есть в любом линуксе, ничего собирать не нужно. Ну и когда я все это начинал инструмент был написан на скорую руку, взял питон практически не думая, о чем все еще не жалею
Axm
Можно как-то в Go выделить строку и параметры в функцию или переменную, чтобы не повторять постоянно по два раза все?
err := r.ParseForm()
if err != nil {
logger.Errorf("Cannot parse request data: %v", err)
http.Error(w, fmt.Sprintf("Cannot parse request data: %v", err), http.StatusBadRequest)
}
Aleksey
Сделай через Sprintf переменную и пихай куда хочешь
Axm
и правда, че-то туплю. спасибо!
Мерль
Нормальные вебсокеты завезли
https://github.com/gobwas/ws
Anonymous
Есть два пакета: main, в котором лежит var shared string = «»
Так же есть второй пакет (middleware), из которого я хочу в эту переменную записать.
Подскажите, как это сделать, а то я совсем не знаю, как это в Гошке работает
Aleksey
Можешь напрямую из пакета попробовать <пакет>.<переменная>=
Anonymous
Все, решил. В Гошке это нужно писать с большой буквы
Anonymous
Верно?
Aleksey
А если middleware то лечше через контекст
Мерль
Да, использовать глобальные переменные лучше не надо, зло какое-то
Aleksey
Переменные не сбольшой буквы в других пакетах не видно
Anonymous
я об этом забыл.
Anonymous
да друг делает тестовое на Го
Anonymous
я помогаю
Anonymous
А на Го давно не смотрел, вот и забыл.
Anonymous
Евгений
Нормальные вебсокеты завезли
https://github.com/gobwas/ws
чем лучше стандартных? Смотрю пример, главное преимущество - возможность меньше копировать, но тогда ты сам должен обрабатавать все не на http, а на tcp уровне. То есть сделать одновременный доступ и по http и по ws будет неудобно - либо отдельные сервисы, отдельные порты и прочее надо делать. Если хочешь все вместе - см вариант 1. Там будет тоже самое.
Или я что-то упустил?
Dmitry
Why?
http://wiki.c2.com/?GlobalVariablesAreBad
Евгений
мне наоборот кажется, что в Go это еще более актуально - когда глобальная переменная будет еще неожиданнее перезатироваться другой горутиной.