@proGO

Страница 967 из 1674
Alexey
02.11.2017
11:43:23
Нормальная обработка ошибок в нём решает

http://golangshow.com/episode/2015/11-26-031/ – старый выпуск с обсуждением темы

Давид
02.11.2017
12:13:01
echo
ок

Google
Илья
02.11.2017
12:13:46
gramework

nn
02.11.2017
12:36:17
Давид
02.11.2017
12:39:46
А в чем тогда
почитайте чат

Galim
02.11.2017
13:39:19
добрый день, я только начинаю писать на го, не совсем понимаю как работают слайсы хотел написать бота для тайного санты и наткнулся на проблему: есть слайс, каждому эллементу слайса нужно впарить другой уникальный элемент слайса

https://play.golang.org/p/jy4IGvVDEB

вот упрощённый вариант того что я накидал

слайс это указатель на массив, а как сделать так чтоб при append у меня не менялся первоначальный слайс, точнее что применять если не append

я не жду подробного объяснения, ткните пожалуйста в доку где это конкретно читать

nezorflame
02.11.2017
13:41:54
https://github.com/golang/go/wiki/SliceTricks

Илья
02.11.2017
13:42:09
стркоа 35, убери s1 =

хотя я не понимаю, ни задачу, ни то, что ты написал :)

так что, удачи

Google
Aleksandr
02.11.2017
13:43:39
Плюс я старался сделать хорошее, понятное, консистентное API.
а можно сконфигурировать схему не тегами у структуры?

Alexey
02.11.2017
13:45:50
Нет, маппинг на структуру и обратно в Go везде делается через теги, потому и в reform так

John
02.11.2017
14:31:45
Вопрос: а как лучше всего отслеживать множество таймеров в Go ? Они могут динамически добавляться и удаляться. Создавать на каждый таймер свою горутину ? или отслеживать все сразу в mail loop (через reflect.select) ? Может, кто-то уже решал подобную задачу :)

Атас
02.11.2017
15:04:59
добрый день, я только начинаю писать на го, не совсем понимаю как работают слайсы хотел написать бота для тайного санты и наткнулся на проблему: есть слайс, каждому эллементу слайса нужно впарить другой уникальный элемент слайса
ну понять что ты хошешь из кода и вопроса невозможно, по коду я вижу что, есть слайс santas и две его копии, потом ты идешь по индексам santas и удаляешь элементы из s1 с начала и из s2 произвольно, когда i становится больше длины s1 законная паника причем весь for range можно удалять santas от этих манипуляций не измениться если задача стоит поменять порядок элементов в слайсе то делать это надо не так

ну например вот так https://play.golang.org/p/-8BGdMvvgX

John
02.11.2017
15:36:25
если они будут пулять в канал что-нибудь
Это круто, но ... их кол-во динамически меняется

Vladimir
02.11.2017
15:37:40
Это круто, но ... их кол-во динамически меняется
хм... ну горутины не бесплатные и тебе же что-то еще делать надо будет. В принципе можешь горутину на таймер делать, если очень надо

иначе можно таймеры в слайсы запихать и по слайсу ходить спрашивая "есть чо?"

горутины наверное покрасивее будут по коду

John
02.11.2017
15:38:27
горутины наверное покрасивее будут по коду
Вот я пока к ним и склоняюсь, но решил спросить, мб есть еще варианты :))

Илья
02.11.2017
15:43:17
/report

Lucky
02.11.2017
15:43:42
/report

nezorflame
02.11.2017
15:43:48
/report

Roman
02.11.2017
16:09:03
Привет Gopher'ы кто нибудь уже дата-лодыря (dataloader) для GraphQL имплементировал?

Aleksandr
02.11.2017
16:09:41
Привет Gopher'ы кто нибудь уже дата-лодыря (dataloader) для GraphQL имплементировал?
https://www.google.ru/search?client=ubuntu&channel=fs&q=golang+data+loader&ie=utf-8&oe=utf-8&gfe_rd=cr&dcr=0&ei=O0P7WbtG1sC0AbvotfAM

Roman
02.11.2017
16:10:35
https://www.google.ru/search?client=ubuntu&channel=fs&q=golang+data+loader&ie=utf-8&oe=utf-8&gfe_rd=cr&dcr=0&ei=O0P7WbtG1sC0AbvotfAM
сори, чуток неправильно написал: имеется ввиду "использовал ли кто уже"

Vladimir
02.11.2017
19:45:14
а это, давно gogland переименовался?

BlastPy
02.11.2017
19:46:48
так только голосовали за новое название

Google
Alexey
02.11.2017
19:46:56
Он переименовался уже?

Vladimir
02.11.2017
19:47:08
г исчезла и L заглавной стала

BlastPy
02.11.2017
19:47:20
да

Aleksandr
02.11.2017
19:47:42
Vladimir
02.11.2017
19:48:04
сегодня новый eap
вот я на него ебилд начал править и оп, а он не качается. Оп - а g исчезла

Aleksandr
02.11.2017
19:48:21
https://d3nmt5vlzunoa1.cloudfront.net/go/files/2017/11/gogland_1.8mb.gif

AxiS
02.11.2017
19:48:38
а это, давно gogland переименовался?
https://blog.jetbrains.com/go/2017/11/02/announcing-goland-former-gogland-eap-18-final-product-name-templates-support-and-more/

Vladimir
02.11.2017
19:49:04
отстойники

раньше было лучше

AxiS
02.11.2017
19:49:45
Название?

Vladimir
02.11.2017
19:49:51
да

AxiS
02.11.2017
19:50:10
ну только из-за того что географическое?

Vladimir
02.11.2017
19:50:24
раньше были гланды, а теперь что? ланды?

Aleksandr
02.11.2017
19:50:52
AxiS
02.11.2017
19:59:15
раньше были гланды, а теперь что? ланды?
а теперь так глубоко заходить не нужно)

GoDeeper тоже норм)

Aleksandr
02.11.2017
20:07:27
Если не заметили, в декабре GoLand зарелизится и станет платным соответственно.

AxiS
02.11.2017
20:08:14
но можно продолжить пользоваться EAP

Aleksandr
02.11.2017
20:09:13
Если будет чем пользоваться. Они же на определенный срок

Google
AxiS
02.11.2017
20:10:13
Если будет чем пользоваться. Они же на определенный срок
В смысле? Это же багодром, он бесплатный, просто апдейтить нужно

Aleksandr
02.11.2017
20:11:17
В смысле? Это же багодром, он бесплатный, просто апдейтить нужно
Про то и говорю. Если будут регулярно выпускать EAP, то да

Alexey
02.11.2017
21:07:30
Они вроде иногда не всегда ЕАР регулярно выпускают. А вообще это к вопросу о нормальной работе и удаленке, на нормальной обычно покупают идешки без проблем:)

Admin
ERROR: S client not available

Андрюха (Ren)
02.11.2017
21:20:13
Nick
02.11.2017
21:26:41
А нельзя взять идею комьюнити и поставить плагин ?

Андрюха (Ren)
02.11.2017
21:29:32


и финиш не прожимается

Александр
02.11.2017
21:46:46
Nick
02.11.2017
21:49:07
плагин платный стал
всегда можно скопировать джарочку)

AxiS
02.11.2017
23:09:30
А нельзя взять идею комьюнити и поставить плагин ?
официальный только для ultimate а https://github.com/go-lang-plugin-org/go-lang-idea-plugin не обновляется

всегда можно скопировать джарочку)
с таким же успехом всегда можно license server поднять

corpix
02.11.2017
23:39:50
Да переезжайте уже в emacs/vim, задолбали :D

drjackild
02.11.2017
23:47:31
Ребзи, а прокомментируйте код, пожалуйста. Я тут после достаточно долгой работы на питоне пытаюсь Го потыкать, и не пойму, норм я пишу, или нет. Заранее респект и уважуха всем. func (a *App) GetProjects(w http.ResponseWriter, r *http.Request) { var payload []byte var projects []Project a.DB.Find(&projects) data := make([]interface{}, len(projects)) for i, project := range projects { data[i] = project } context := Context{Status: "OK", Data: data} payload = a.Jsonify(context) if payload == nil { context = Context{Status: "ERROR", Error: "Error when get projects"} payload = a.Jsonify(context) w.Write(payload) } else { w.Write(payload) } }

в Jsonify там такая фигня: func (a *App) Jsonify(context Context) []byte { encodedContext, err := json.MarshalIndent(context, "", " ") if err != nil { return nil } return encodedContext }

Roman
03.11.2017
06:47:37
а Context это { Status string, Data: []Interface{} } ????????????

payload := blabla if payload { w.Write(payload) } else { w.Write(payload) } это тебе даже линтер прокоментирует

а ошибку имело смысл кидать сразу после получения проектов и проверки результатов

тут как бы все равно на каком языке, не думаю, что в пайтоне это было бы нормой

Google
terry
03.11.2017
07:54:30
https://www.youtube.com/watch?v=k-_c6wKIA8w

Konstantin
03.11.2017
07:58:33
а он разве игнорирует? сделай для примера хедер в файле с названиями всех полей

Arch
03.11.2017
08:05:23
а он разве игнорирует? сделай для примера хедер в файле с названиями всех полей
Нет, дело в чем-то другом, но в мапе вместо 8к всего 5к записей, сначала сходу на это загрешил, но ща понимаю, что где-то в другом месте не состыковка

drjackild
03.11.2017
08:54:46
Roman
03.11.2017
09:06:45
Вот это + Error interface{}
data := make([]interface{}, len(projects)) for i, project := range projects { data[i] = project }

вот это тогда лишнее

и Data не []interface{} а interface{} пусть будет

и просто projects присваивай

drjackild
03.11.2017
09:09:53
Спасибо, гораздо лучше, это меня больше всего бесило)

Roman
03.11.2017
09:15:00
if payload == nil { context = Context{Status: "ERROR", Error: "Error when get projects"} payload = a.Jsonify(context) w.Write(payload) } else { w.Write(payload) } вот это тоже лучше переделать if len(projects) == 0 { context = Context{Status: "ERROR", Error: "Error when get projects"} payload = a.Jsonify(context) w.Write(payload) return }

а еще лучше возьми какой-нить gin посмотри примеры и перепеши на нем

drjackild
03.11.2017
09:20:57
я сделал чуток иначе (я юзаю mux, а не gin), вроде теперь тож ок. на len проверять не буду, потому что отсутствие проектов не ошибка, норм поведение. теперь как то так: func (a *App) GetProjects(w http.ResponseWriter, r *http.Request) { var payload []byte var projects []Project a.DB.Find(&projects) context := Context{Status: "OK", Data: projects} payload, err := a.Jsonify(context) if err != nil { context = Context{Status: "ERROR", Error: "Error when get projects"} payload, _ = a.Jsonify(context) errMsg := string(payload[:]) http.Error(w, errMsg, http.StatusInternalServerError) return } w.Write(payload) }

Roman
03.11.2017
09:24:21
а если во втором Jesonifyошибка? :)

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