
Sergey
25.02.2018
12:04:46
Кто нибудь уже использовал либу github.com/graphql-go/graphql?
Как узнать что в запросе в groups используется modules?
query{
groups{
id
name
modules{
id
name
}
}
}

Timur
25.02.2018
13:48:07
Modules предлагается загружать отдельно
Для этого вы опишите обработчик для modules

Google

Timur
25.02.2018
13:49:24
И получите туда source в виде родительского объекта group

Sergey
25.02.2018
14:04:46

Timur
25.02.2018
14:05:12
Но это печальный подход
n+1 запросов
Избыточный лукап данных
Мы пошли путем query builder, promise, etc..

BlackTrojan
25.02.2018
14:22:47
Саламуля пацанва. Посоветуйте плагинов для Sublime Text 3 для разработки на Go.

Timur
25.02.2018
14:33:55
GoSublime

BlackTrojan
25.02.2018
14:39:51
GoSublime
С ним есть небольшая (а может и большая) проблема, что он не видит методы/структуры/и т.д у библиотек, которые были импортированы через gb vendor fetch, есть ли фикс к этому?

Timur
25.02.2018
14:41:30
Тогда вам в goland
Все няшки там

Andrey
25.02.2018
14:54:18
А есть где в одном месте список всех базовых интерфкйсов?

Google

Aleksandr
25.02.2018
14:59:15

BlackTrojan
25.02.2018
15:00:26

Roman
25.02.2018
15:00:48
Текущая папка
Вернее полный путь

BlackTrojan
25.02.2018
15:03:24
И ещё вопрос - создал тестовый проект, пробую его скомпилить с помощью gb build all и просто gb build, вроде всё проходит, но где сам-то бинарник?
В самой папке проекта не создаётся папка bin

Andrew
25.02.2018
15:05:13

BlackTrojan
25.02.2018
15:05:40

Andrew
25.02.2018
15:07:55
Не нашёл в истории что такое gb...

Artem
25.02.2018
15:12:31
чет у меня голова не соображает сегодня. нужно переставить последний элемент слайса в начало, есть какой то канонический способ? то, что у меня получилось чет даже самого пугает.
func swap(s *[]int) {
l := len((*s)) - 1
(*s) = append([]int{(*s)[l]}, (*s)[:l]...)
}

Alexey
25.02.2018
15:19:26
s = append([]int{s[len(s)-1:len(s)-1]}, s[1:len(s)-2]...)

Artem
25.02.2018
15:22:43
это тоже фигня

Alexey
25.02.2018
15:27:11
Незнаю :) ща проверим

Artem
25.02.2018
15:27:26
во первых длина динамическая
во вторых тут s[1:len(s)-2] почему то пропускается первый элемент и предпоследний или я че то не догоняю
а тут s[len(s)-1:len(s)-1] срез не нужен, s[len(s)-1] это уже последний элемент. вот к нему нужно приапендить s[:len(s)-1], последний же не включается, но суть я понял, наверно никак иначе...

Aleksandr
25.02.2018
15:32:21
а чем s[0], s[len - 1] = s[len - 1], s[0] не угодило?

Alexey
25.02.2018
15:33:18
s = append(s[len(s)-1 : ], s[:len(s)-1]...)

Google

xPushkin
25.02.2018
15:33:47

Alexey
25.02.2018
15:34:16
Ну и то что я последнее кинул работает

Artem
25.02.2018
15:37:51

Aleksandr
25.02.2018
15:40:06

Alexey
25.02.2018
15:40:15
https://play.golang.org/p/ATPecxcjpAP

Artem
25.02.2018
15:42:30
https://play.golang.org/p/JcNeehrKwbu
вы выполните первый пример и посмотрите что он делает, перывй элемент должен сместиться с 0 на 1, последний идет в начало, а порядок остальных сохраняется

Aleksandr
25.02.2018
15:43:53
ну ок, тогда вам сюда https://play.golang.org/p/ATPecxcjpAP

BlackTrojan
25.02.2018
15:46:20

Artem
25.02.2018
15:48:13

Artem
25.02.2018
15:52:46
в общем если кто знает способ лучше, https://play.golang.org/p/WQ-nBHyBEKp -делитесь :)

Alexey
25.02.2018
16:10:06

Andrew
25.02.2018
16:11:13

Artem
25.02.2018
16:11:31
Для l не выделять память
тогда придется ее дважды вызывать как минимум и продублировать хрень которую итак читать нереально

Alexey
25.02.2018
16:12:57
Что ж тут не читаемого?
(*s) = append((*s)[len((*s)) - 1:], (*s)[:len((*s)) - 1]...)
Можно:
(*s) = append((*s)[ (len((*s))-1) : ], (*s)[ : (len((*s))-1) ]...)

Andrew
25.02.2018
16:16:32

Zloy Dobriy
25.02.2018
16:17:10
Пиздец

Google

Zloy Dobriy
25.02.2018
16:17:19
Что вы тут устроли?!
(*s) = это зачем так? Что это значит?

Artem
25.02.2018
16:17:44
это называется разыменовывание указателя.. точнее я так называю и за это его принимаю, а как на самом деле хз )

Alexey
25.02.2018
16:18:31

Artem
25.02.2018
16:19:12

Alexey
25.02.2018
16:21:44
Я бы вообще сделал свой тип слайс и метод у него

Admin
ERROR: S client not available

Zver
25.02.2018
16:22:05
А я бы вообще сдвигал все элементы. Все равно приходится копировать слайс полностью.
Не будет тогда выделения памяти.

Artem
25.02.2018
16:23:28
Я бы вообще сделал свой тип слайс и метод у него
можно, но это не особо суть меняет, просто будет slice.swap(el1, el2) вызов усложнится. Точнее будет slice.swap(element), вот если указывать 2 элемента для свопа тогда да наверно через метод лучше
хотя все равно все элементы перебираются. может сразу пустое место зарезервировать и все

Zver
25.02.2018
16:30:17

Alexey
25.02.2018
16:37:29
func swap(s *[]int) {
n := (*s)[len((*s))-1]
copy((*s)[1:], (*s)[0:len((*s))-1])
(*s)[0] = n
}

Andrew
25.02.2018
16:38:15

Alexey
25.02.2018
16:38:30
https://play.golang.org/p/-6cVcSWbzYE
Выделение только одного инта

Zver
25.02.2018
16:39:50

Google

Alexey
25.02.2018
16:41:54
Неудобно на телефоне... почему то не всегда ссылку с плэйголанга скопировать удаётся

Zver
25.02.2018
16:44:57

Alexey
25.02.2018
16:45:45
бэнчмарки сделать нужно

Artem
25.02.2018
16:45:54
там все довольно спорно и есть в конце ссылка на продолжение, в любом случае нужно на конкретном примере тестировать и смотреть что в итоге будет лучше. Но да так тоже интересно.

Alexey
25.02.2018
16:47:23
По памяти бэнчмарки

Artem
25.02.2018
16:48:25

Alexey
25.02.2018
16:49:38
Да? Дело ещё в скорости её выделения и уборки потом гб

Zver
25.02.2018
16:57:39

Artem
25.02.2018
16:58:19
Тестировал на 100к примерно, больше вряд ли нужно. Но мало ли )
И там числа в пределах 10^5 внутри

Alex
25.02.2018
17:21:59
коллеги, драйвер для кликхауса посоветуйте пожалуйста, желательно http, а то на гитхабе их целый зоопарк, не уверен с которым стоит связываться

Nik
25.02.2018
17:22:29
Спроси там, им виднее

Alex
25.02.2018
17:22:53
там я тоже спросил

Zver
25.02.2018
17:49:05

Artem
25.02.2018
17:50:18
да как то даже слишком

Zver
25.02.2018
17:51:16

Artem
25.02.2018
17:54:08

Zver
25.02.2018
17:55:30