
Mars
12.07.2017
04:15:52

Slava
12.07.2017
04:16:24
я щас хочу внутреннюю тулзу перевести на это, а то у меня и инклуды полей были и нормализации в react/redux данных, вообщем всё что в graphql из коробки
но пока не могу найти нормального фреймворка для го =( хоть свой пиши

Mars
12.07.2017
04:16:50

Google

Slava
12.07.2017
04:17:16
ну тут сильно проще soap всё
типа rest на стероидах
круто что можно прям с сервера через подписки клиент обновлять

Mars
12.07.2017
04:18:00

Slava
12.07.2017
04:18:20
ну я потыкал плейграунд гитхаба - мне понравилось

Mars
12.07.2017
04:19:37

Slava
12.07.2017
04:19:57
да, это конечно, парсеры я сам писать не хочу, да и некогда =)
вот самое близкое мне https://github.com/neelance/graphql-go/blob/new-resolvers/example/starwars/starwars.go#L291, но я хочу чтобы по схеме вообще всё генерировалось, как в grpc и нужно было только интерфейсы реализовать
мне кажется генерация graphql из кода го - это вообще неверно
но наверное удобно для простых случаев

Mars
12.07.2017
04:24:03

Google

Mars
12.07.2017
07:06:36
На этом можно сделать простой генератор. Еще, было бы здорово мочь использовать существующие модели.

Valentin
12.07.2017
07:23:36
Я правильно понимаю, что GraphQL это альтернатива REST?
И это просто описание протокола?

Michael
12.07.2017
07:24:42
ты говоришь серверу что и в каком виде тебе надо
типа киллерфича

Valentin
12.07.2017
07:25:30
Гошный код выглядит громоздко -)

Michael
12.07.2017
07:25:34
судя по описанию)
для graphql?

Valentin
12.07.2017
07:28:06
да, из примеров репо выше
Надо будет поковырять эту штуку на досуге, на сайте graphhq хорошо описано
читай разрекламировано)

Dmitry
12.07.2017
07:29:10

Мерлин
12.07.2017
07:40:47

Nikita
12.07.2017
07:58:40
Господа, есть желание хранить запросы к базе и прочие ресурсы во внешнем файле. Есть ли какие-то встроенные решения аля джававского Resource Bundle?

N
12.07.2017
08:07:50

Michael
12.07.2017
08:08:30
хм

Nikita
12.07.2017
08:08:45

Michael
12.07.2017
08:08:52
при сборке компилятор Го может задать значение нужной переменной

Nikita
12.07.2017
08:09:09
ну и вообще тогда интересуют go-way best practices по хранению ресурсов
идея в том, чтобы хранить sql запросы в файле на диске, удобно править их оттуда при необходимости, а не искать места в коде, где они захардкожены

Google

N
12.07.2017
08:10:39
можно подробнее?
один из вариантов, который я использовал: https://github.com/jteeuwen/go-bindata и таких решений не одно, под свою задачу уже можно что-то подыскать

Michael
12.07.2017
08:11:50
go build -ldflags "-X main.sqlspgetti=$(supersql)"
?

N
12.07.2017
08:12:36

Zhenja
12.07.2017
08:16:40
в json/xml не удобно хранить sql. Ну когда он по 1к символов на запрос

Nikita
12.07.2017
08:25:29
спасибо за ответы)

Максим
12.07.2017
08:54:17
подскажите, плз, как правильно называются функции, которые создаются внутри другой функции и не имеют имени или как правильно написать
defer func(){
//То что должно выполнится перед завершением
}

Nikita
12.07.2017
08:55:07
анонимные?

Максим
12.07.2017
09:02:16
да

Zhenja
12.07.2017
09:04:04
кроссворд отгадываете?

Michael
12.07.2017
09:04:26
job interview

Максим
12.07.2017
09:14:09

Aleksandr
12.07.2017
09:14:35
да
так и называются - анонимные

Максим
12.07.2017
09:15:08
нашел, но непонятно к чему такой синтаксис - func(){}(), зачем там две пары дужек?

Aleksandr
12.07.2017
09:15:23

Zhenja
12.07.2017
09:15:26
создать и сразу вызвать её
f=func(){}
f()

Максим
12.07.2017
09:16:20

corpix
12.07.2017
09:22:10
Почему питон, а не Go?
Потому что есть в любом линуксе, ничего собирать не нужно. Ну и когда я все это начинал инструмент был написан на скорую руку, взял питон практически не думая, о чем все еще не жалею

Google

Axm
12.07.2017
09:22:51
Можно как-то в 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
12.07.2017
09:23:37
Сделай через Sprintf переменную и пихай куда хочешь

Axm
12.07.2017
09:24:04
и правда, че-то туплю. спасибо!

Мерлин
12.07.2017
09:34:33
Нормальные вебсокеты завезли
https://github.com/gobwas/ws

Vlad
12.07.2017
09:36:35
Есть два пакета: main, в котором лежит var shared string = «»
Так же есть второй пакет (middleware), из которого я хочу в эту переменную записать.
Подскажите, как это сделать, а то я совсем не знаю, как это в Гошке работает

Admin
ERROR: S client not available

Aleksey
12.07.2017
09:37:40
Можешь напрямую из пакета попробовать <пакет>.<переменная>=

Vlad
12.07.2017
09:37:47
Все, решил. В Гошке это нужно писать с большой буквы
Верно?

Aleksey
12.07.2017
09:37:56
А если middleware то лечше через контекст

Мерлин
12.07.2017
09:38:19
Да, использовать глобальные переменные лучше не надо, зло какое-то

Aleksey
12.07.2017
09:38:22
Переменные не сбольшой буквы в других пакетах не видно

Vlad
12.07.2017
09:38:32
я об этом забыл.
да друг делает тестовое на Го
я помогаю
А на Го давно не смотрел, вот и забыл.

Andrew
12.07.2017
10:14:07

Евгений
12.07.2017
10:14:11
Нормальные вебсокеты завезли
https://github.com/gobwas/ws
чем лучше стандартных? Смотрю пример, главное преимущество - возможность меньше копировать, но тогда ты сам должен обрабатавать все не на http, а на tcp уровне. То есть сделать одновременный доступ и по http и по ws будет неудобно - либо отдельные сервисы, отдельные порты и прочее надо делать. Если хочешь все вместе - см вариант 1. Там будет тоже самое.
Или я что-то упустил?

corpix
12.07.2017
10:15:31
Why?
http://wiki.c2.com/?GlobalVariablesAreBad

Andrew
12.07.2017
10:18:09

Google

corpix
12.07.2017
10:18:51

Евгений
12.07.2017
10:20:28
мне наоборот кажется, что в Go это еще более актуально - когда глобальная переменная будет еще неожиданнее перезатироваться другой горутиной.

Andrew
12.07.2017
10:21:30
Глобальные обычно всякие константы

corpix
12.07.2017
10:23:18
Константы не изменяемы. Речь о переменных, которые могут быть изменены

Евгений
12.07.2017
10:24:15
название статьи - GlobalVariablesAreBad

Мерлин
12.07.2017
10:25:04

Andrew
12.07.2017
10:26:12
Типа вы хотите сказать, что http.DefaultClient - это неправильно?
Это ж, как я понимаю, глобальная переменная

corpix
12.07.2017
10:29:26
Если её не мутируют то не могу сказать что наличие такой переменной это не правильно. Но в этом случае это уже не совсем переменная... я бы сказал что это идентификатор

Мерлин
12.07.2017
10:30:37

corpix
12.07.2017
10:30:59
Вобщем, коротко говоря - наличие глобальных переменных, которые могут меняться из разных частей программы - зло. Я полагаю что это и было изначальным поинтом этого разговора

Michael
12.07.2017
10:35:28
readonly спасёт мир

corpix
12.07.2017
10:35:50
ФП спасёт мир)))

Анатолий
12.07.2017
10:36:32
fix: (ФП (спасет (мир)))

Zhenja
12.07.2017
10:37:11
а подключение к базе, логгеры, конфиг? Передавать в функции параметром? Или в каждой функции поднимать свое?