@proGO

Страница 519 из 1674
Denis
05.03.2017
10:47:10
Хандлер принимает данные ивента

Можно вообще без корутин

Roman
05.03.2017
11:01:03
Без корутин и каналов в мультитридинг и асинк?

Denis
05.03.2017
11:08:33
Ну хочется асинк

Google
Denis
05.03.2017
11:08:44
Запускаете хендлеры в корутинах

Roman
05.03.2017
11:12:17
Как я говорил несколько раз на собеседовании на нынешней работе: для каждой задачи - свой инструмент.
Примерно раз в три месяца тут спрашивают что пишут на Го. Ответ всегда одинаковый - прокси сервера.

Phil
05.03.2017
11:33:26
Нет же. Ответ всегда - микросервисы.
нет. у меня но есть, а микросервисов нет

Alexey
05.03.2017
11:34:31
нет. у меня но есть, а микросервисов нет
Я не спорю, я им вообще логи парсю. Но когда-то то спрашивает, обычно отвечают, что микросервисы.

Alexey
05.03.2017
11:38:22
Согласен:)

Phil
05.03.2017
11:42:49
Ну и это как с кластерами. Все о них говорят, но в реалии

Alexey
05.03.2017
11:47:58
Ну и это как с кластерами. Все о них говорят, но в реалии
В реалии у меня эластик в кластере) Но это для соседнего чатика тема

Serge
05.03.2017
12:48:53
Эта штука называется nsq
Так, за nsq спасибо. Но это про распределенные системы. Я хочу просто внутри приложения это сделать. Т.е. по мне так это пишется за пару часов, но лень же:)

Denis
05.03.2017
13:04:55
https://golanglibs.com/search?q=pubsub

Maxim
05.03.2017
13:24:19
Слушайте, вопросец есть по встраивание структур в структуры

Google
Maxim
05.03.2017
13:24:50
Как лучше встраивать повторяющиеся элементы в структуры JSON?

Dmitry
05.03.2017
13:25:02
списком

в json есть такой, между [ и ] токенами перечисляешь повторяющиеся структуры через запятую

Maxim
05.03.2017
13:28:08
Я вижу 4 варианта, но распишу два: type SampleText struct { Test `json:"user_name" } type Test struct { string } или type SampleText struct { Test `json:"user_name" } type Test struct { Test string }

Alexey
05.03.2017
13:28:46
Найдите 5 отличий?)

Dmitry
05.03.2017
13:29:01
оба не конпелируются?

Alexey
05.03.2017
13:29:02
а, нашёл

Maxim
05.03.2017
13:29:37
Найдите 5 отличий?)
Ну, в обеих случаях мне придётся таскать поезд var.Test.string или var.Test.Test

А я ожидаю от встраивания просто var.Test

Dmitry
05.03.2017
13:30:42
extends ищешь? :)

Maxim
05.03.2017
13:31:05
Структур у меня много и получается что половина содержимого требуется расписывать до третьего уровня, а половину - до второго. Хотя я могу не встраивать повторящиеся части вовсе, а продублировать их как любой другой объект. Но тогда при изменении объекта придётся все структуры её содержащие поправлять, что не очень

extends ищешь? :)
Типа того

оба не конпелируются?
Компилируются

Я вижу 4 варианта, но распишу два: type SampleText struct { Test `json:"user_name" } type Test struct { string } или type SampleText struct { Test `json:"user_name" } type Test struct { Test string }
Почему 4 варианта - просто возьмите первые два и перенесите `json:"user_name"` во встраиваемую структуру.

И, как бэ, какой вариант лучше?

Или есть альтернативные способы встраивания?

И я не совсем понимаю разницу между: type SampleText struct { Test Test } и type SampleText struct { Test }

Serge
05.03.2017
13:53:13
Задача специфическая. Я думаю поэтому общего решения и нет
Ну, счёт специфичности я бы поспорил, но т.к. мало что остается на долго в рамках одного процесса, то видимо nsq

Phil
05.03.2017
13:54:03
Ну, счёт специфичности я бы поспорил, но т.к. мало что остается на долго в рамках одного процесса, то видимо nsq
Специфика не в постановке задачи (даже я понял чего ты хочешь), а специфика в обработке что ли.

Google
Maxim
05.03.2017
14:54:48
Go умеет в понимание int как bool?

Denis
05.03.2017
14:55:07
Не

Maxim
05.03.2017
14:55:24
Чтобы 1 = true, а 0 = false Или только через if?

Phil
05.03.2017
14:55:41
а как у тебя кейс прости, где не if?

Maxim
05.03.2017
14:56:18
Нигде. Просто спрашиваю, вдруг я зря if леплю

Maxim
05.03.2017
15:33:27
Есть структура: verifiedEmailResponse struct { Request Request `json:"request"` User struct { Activated int `json:"user_activated,omitempty,string"` } `json:"user"` } Есть функция, которая и так работает с этим куском: ... var obj verifiedEmailResponse if err := json.NewDecoder(bytes.NewReader(resp)).Decode(&obj); err != nil { return false, err } if obj.User.Activated == 1 { return true, nil } return false, nil

Yura
05.03.2017
15:34:00
Чтобы 1 = true, а 0 = false Или только через if?
Только if . И это действительно круто. Да, иногда хочется тернарного оператора. Но и без него можно жить.

Maxim
05.03.2017
15:34:37
Только if . И это действительно круто. Да, иногда хочется тернарного оператора. Но и без него можно жить.
Понял. Просто уточнил на всякий пожарный, потому что только сейчас вспомнил про обработку чисел как булейны.

Ничего против не имею лишние три строки накатать

Maxim
05.03.2017
15:35:28
Просто если есть способ проще, который я просто не уточнил о его существовании, то зачем лепить больше? :D

Maxim
05.03.2017
15:42:07
map[int]bool{ 0: false, 1: true}
Тоже вариант

Alexey
05.03.2017
15:42:23
1 будет тру, остальное false вроде.

Phil
05.03.2017
15:44:17
map[int]bool{ 0: false, 1: true}
Это типа проще? Это шутка такая?

Maxim
05.03.2017
15:44:50
Это типа проще? Это шутка такая?
Может и не проще, но как альтернативный вариант пойдёт

Yura
05.03.2017
15:45:29
return obj.User.Activated == 1, nil

так не пробовали?

Alexey
05.03.2017
15:46:10
Это типа проще? Это шутка такая?
Так один раз создал, а потом используешь. Если у тебя в проекте регулярно надо. Так-то конечно if

Google
Phil
05.03.2017
15:46:17
Alexey
05.03.2017
15:47:02
Это у меня питоновское прошло, там же свитчей не было, всё через мапы (дикты) делалось

Phil
05.03.2017
15:47:10
Так один раз создал, а потом используешь. Если у тебя в проекте регулярно надо. Так-то конечно if
Только взять из мапы операция чутка тяжелее простого if. И если тебе это регулярно надо, ты начинаешь подогревать воздух на пустом месте

Maxim
05.03.2017
15:53:13
Такое встречается раза 2-3 всего, думаю можно пренебречь картами

Phil
05.03.2017
15:55:52
Это было ожидаемо

Kirill
05.03.2017
15:56:01
Alexey
05.03.2017
15:56:42
Ну вот если бы там было не только 0 и 1 мапить, а много интов, тысячи их, то мапа была б пошустрее :)

wf
05.03.2017
15:59:09
Заранее извиняюсь за нубский вопрос, но есть ли способ опимизировать подобную конструкцию? if param1, ok := job.GetParamString("param1");ok { if param2, ok := job.GetParamString("param2");ok { if param3, ok := job.GetParamString("param3");ok { // Using params1...3 } } }

Admin
ERROR: S client not available

Yura
05.03.2017
16:00:27
В общем, потесть. Всё, что помещается на экран в виде select (по целочисленным ключам) всегда будет быстрее в виде select, чем в виде map.

Alexey
05.03.2017
16:00:29
т.е. ты хочешь реализовать odd и even через мапу?
Нет, я ж не говорю, что там чётные обязательно будут false, а нечетные true.

Yura
05.03.2017
16:01:05
Т.е. может быть для тысячи ты и прав, но я не могу представить 1000 статически описанных кейсов.

Yura
05.03.2017
16:02:02
Может быть ты даже прав для 100 кейсов (именно по-этому я и написал "всё что помещается на экран")

Yura
05.03.2017
16:03:04
Да ? я практически ни когда не делал кодеген...

Google
Kirill
05.03.2017
16:04:06
Да ? я практически ни когда не делал кодеген...
а пишешь на языке, где почти всё -- кодоген

Yura
05.03.2017
16:04:25
Но и в этом случае лучше тогда использовать не всторенный map, а напилить свой, если важна скорость.

wf
05.03.2017
16:04:36
А в чем проблема?
в один if собрать позволяет Го ?

Yura
05.03.2017
16:04:42
а пишешь на языке, где почти всё -- кодоген
Ты имеешь в виду библиотеки?

Но я сам не реализовывал codegen ?

Phil
05.03.2017
16:05:32
Kirill
05.03.2017
16:06:19
wf
05.03.2017
16:07:21
А зачем?
нет я в общем, конструкцию типа (...) and (..) там не применить?

Alexey
05.03.2017
16:07:59
Может быть ты даже прав для 100 кейсов (именно по-этому я и написал "всё что помещается на экран")
Для 16 switch такой же быстрый, как if, мапа становится в 3 раза медленнее. А дальше мне лень печатать))

Phil
05.03.2017
16:08:06
нет я в общем, конструкцию типа (...) and (..) там не применить?
Применить. Т.е. можно взять все три параметра в ok[1-3] и потом просто через && проверить

wf
05.03.2017
16:11:03
Phil
05.03.2017
16:11:32
если вывести функции присвоения перед if? или по другому
Да попробуй и так. Что нам говорит эксперимент?

wf
05.03.2017
16:13:10
Я просто расчитывал на что то подобное if a, ok1:= get(), b,ok2:= get(); ok1&&ok2 { // Using a b }

Yura
05.03.2017
16:21:34
Я имею ввиду язык
Тогда я тебя не понимаю.

Можешь пояснить своё высказывание?

Kirill
05.03.2017
16:23:31
Можешь пояснить своё высказывание?
Огромная часть гошки - кодоген транспилятора с сей

Yura
05.03.2017
16:24:55
Ты имеешь в виду runtime, который когда-то был написан на C, потом транспилен на Go? С тех пор его существенно почистили.

Yura
05.03.2017
16:25:32
А что ещё?

Kirill
05.03.2017
16:26:17
Да и те же мапы не изменялись, насколько помню, совсем

Yura
05.03.2017
16:26:34
В любом случае, то что оно когда-то было написано на C , это уже просто достояние истории. Сейчас оно написано на Go, и ни куда не транспилится.

И выглядит оно как написанное на Go, т.е. стиль после транспилятора поправили.

Страница 519 из 1674