
?
02.01.2018
09:40:18
Никто не использует каки-то static analysis tools ? Что есть вообще годное ?

Vasily Romanov
02.01.2018
09:45:01
gometalinter

?
02.01.2018
09:45:43
спасибо

Alexander
02.01.2018
13:28:41
Всем привет!
У либы для работы с монгой метод All биндит выборку документов на структуру, так вот, у меня в одной коллекции лежат немного отличающиеся по структуре документы, т.е. мне нужен массив из разнородных структур
в зависимости от филда type например, инитится соответствующая структура, т.е. у меня будет массив []interface{}{Post, InstagramPost}, что-то такое, возможно ли реализовать такой биндинг из коробки или придется патчить метод All.
Надеюсь понятно объяснил..

Google

Alexander
02.01.2018
13:28:53
т.е. в results должно быть []interface{}{Post, InstagramPost}
и ещё вопросик, как проверить, что переменная принадлежит конкретной структуре

Aleksandr
02.01.2018
13:35:55
что значит принадлежит?

Alexander
02.01.2018
13:36:19
ну тоесть если у меня массив из разнородных структур
как понять что этот конкретный элемент является инстансом конкретной структуры

Aleksandr
02.01.2018
13:37:31
привести к типу
ok := element.(mytype)

Alexander
02.01.2018
13:37:54
спасибо
то что нужно)

Lee
02.01.2018
15:36:48
Чем попарсить веб-страничку?
Чтоб мгновенно было

Mykyta
02.01.2018
15:45:01
Но по скорости хз

Google

Ruslan
02.01.2018
15:51:19
https://benchmarksgame.alioth.debian.org/u64q/go.html
С чем связанва настолько медленная работа го в тесте binary trees?

Daniel
02.01.2018
15:52:45
а какая разница?

Ruslan
02.01.2018
15:53:50
а какая разница?
Мне просто интересно, вроде язык очень быстрый, но именно на этом тесте так долго работает

Andrey
02.01.2018
15:54:34
может потому, что этот алгоритм не оптимизирован и не написан на асме?

Ruslan
02.01.2018
15:55:33

Slava
02.01.2018
15:55:48

Ruslan
02.01.2018
15:56:08
Может алгоритм забивает стек, а в го это медленная процедура?

Andrey
02.01.2018
16:04:19
здесь более наглядно. https://benchmarksgame.alioth.debian.org/u64q/measurements.php?lang=go
https://benchmarksgame.alioth.debian.org/u64q/program.php?test=binarytrees&lang=go&id=4
тут параллельно горутины запускаются. при 21 штук резкое увеличение времени

Ruslan
02.01.2018
16:12:45

Andrey
02.01.2018
16:13:31
А я вот не вьеду почему. А что вы поняли?

Ruslan
02.01.2018
16:17:14
То, что на запуск горутин нужно выделять ресурсы, ну и время

Andrey
02.01.2018
16:18:08
Не думаю. Почему рост нелинейный?

Ruslan
02.01.2018
16:19:27
В java похожая ситуация
https://benchmarksgame.alioth.debian.org/u64q/measurements.php?lang=java

Andrey
02.01.2018
16:22:45
Я думаю проще всего добавить в программу метки времени и посотмреть где торомозит. Ну или если по врослому, то профайлинг запустить. Не думаюа что это сязано с тем что новая горутина требует больше ресурсов. Я их тысячами пускаю, но в бенчмарке ничего странного не видел.

Ruslan
02.01.2018
16:34:28

Andrey
02.01.2018
16:35:19
Не.. У меня своих задач хватает. Вы тему подняли. Вам и флаг в руки. ?

Google

Oleg
02.01.2018
16:37:29
Подскажите пожалуйста как можно инициализировать вложенную структуру?
type C struct{
A *a
B *b
}
К примеру я хочу проинициализировать структуру A

Александр
02.01.2018
16:38:21
когда родительскую иницилизируешь
кормишь

Oleg
02.01.2018
16:39:43

Ruslan
02.01.2018
16:40:10

Alex
02.01.2018
16:40:34
c := &C{A: &a{}, B: &b{}}

Александр
02.01.2018
16:40:46
func New() *C {
a := &A{}
b := &A{}
return &С{ A:a, B:b }
}
чорд!
не успел

Lee
02.01.2018
16:41:05

Oleg
02.01.2018
16:41:17
Спасибо, всем!)

Lee
02.01.2018
16:41:17
И по бенчарку можно понять, как быстрее парсить.

Александр
02.01.2018
16:41:57
Спасибо, всем!)
если структура имеет сложную иницилизацию, лучше через фабрику

Alex
02.01.2018
16:43:14
Не назвал бы это сложной инициализацией. И это фабричный метод, скорее :)

Александр
02.01.2018
16:43:46
я стараюсь все оборачивать в такие методы, это более гибко
потом не надо по всему коду исправлять

Denis
02.01.2018
16:47:27
Доброго времени суток всем. Есть вопрос - можно ли в go собрать не только исполняемые файлы но и библиотеки (.so, .dll) которые можно потом использовать в своем go-приложении.
Нашел только для C/C++ но это не то что мне нужно.

Andrey
02.01.2018
16:51:55
.so под линукс собрать можно. длл - нет.

Александр
02.01.2018
16:52:09
может нужна система плугинов?
гуглить golang plugins

Google

Andrey
02.01.2018
16:52:25
она тоже только под линукс
когда допилят плугины - неизвестно

Александр
02.01.2018
16:54:03
у них лапки

Admin
ERROR: S client not available

Denis
02.01.2018
16:54:56
спасибо

Andrey
02.01.2018
16:56:17
когда запустите поймёте в какую именно это точку

Denis
02.01.2018
16:56:53
не dll но все же лучше чем ничего

Andrey
02.01.2018
16:57:16
вы только под линукс пишете?

Denis
02.01.2018
16:59:23
linux и прочие UNIX системы (freebsd)

Andrey
02.01.2018
16:59:44
Тогда ок.
Уже спрашивал. Но может кто не видел. Контрибюторыв го в этом чате есть?

Stannis
02.01.2018
21:59:00
Господа
как правильно использовать такую конструкцию
a,b,c := arr[0,1,2]
?
и возможно ли
это слайс

Daniel
02.01.2018
22:04:12
нет, так сделать нельзя
a,b,c := arr[0],arr[1],arr[2]

Stannis
02.01.2018
22:21:15

Google

Stannis
02.01.2018
23:01:25
Подскажите, как правильно создать глобальное TCP соединение, чтобы можно было им пользовать с любого места программы?
Могу отдавать как параметр, но в коде придётся постоянно таскать с собой объект

Александр
03.01.2018
00:04:14
в отдельном пакете
всеравно лучше обертку делать, дабы случайно не закрыть ?
в пакете можно объявить переменную для экземпляра

?
03.01.2018
07:53:45
https://www.commandercoriander.net/blog/2017/12/31/writing-go/

Daniel
03.01.2018
11:06:12

Vladimir
03.01.2018
12:45:56
кому не лень, пройдите плз опрос по технологиям https://dou.ua/lenta/sitenews/programming-languages-survey-2018/

Marlik
03.01.2018
12:48:41

Vladimir
03.01.2018
12:55:03
приколько, я и через UA и через DE пробовал - все ок
такое поведение браузера может быть признаком MITM
вот прямая ссыль https://goo.gl/forms/PtiSkqJQL5fiByqH2

?
03.01.2018
13:01:27
блин, в россии он заблочен ...

terry
03.01.2018
13:01:38

Vladimir
03.01.2018
13:02:06