
Никита
26.09.2017
07:14:07
gofmt для начала запусти только

in favor
26.09.2017
07:15:27
Блин, забыл совершенно про goftm..Благодарю, буду дома - сделаю и пушану)

Valentin
26.09.2017
07:16:24
рекомендую забиндить в IDE gofmt, govendor, go vet и gometalinter -)

in favor
26.09.2017
07:16:51
В гогланге же это всё можно сделать, да?

Google

Никита
26.09.2017
07:17:03
прекоммит хук ?

in favor
26.09.2017
07:17:25
Та надо было просто пушануть в репу, без оверинджиниринга
Вот. Такая ещё проблема у меня, что я не только процессю файлы, а пытаюсь отправить балком в эластик в горутине

Valentin
26.09.2017
07:18:12

Michael
26.09.2017
07:18:25
ну, я хз, но плагин в vscode делает автоматически запуски тулзов

in favor
26.09.2017
07:18:30
Поставил там вейтгруппу. Но каждый раз получаю разное количество документов, очевидно, горутина какая-то не завершается..Не знаю пока в чём проблема

Michael
26.09.2017
07:19:13
лучше показывай код

Pawel
26.09.2017
08:07:06
то есть это плохая идея в целом?
это хорошая идея, но тут нужно понимать, что для этого мапу нужно полность клонировать. Что в гошечке является проблемой. Как и в любом кондовом императивном языке - ссылочной прозрачности нет. Клонирование мало того что не эффективно, но требует трудного для понимания монки-кода, в котором легко ошибиться

g
26.09.2017
08:27:01
Привет, постараюсь объяснить свой вопрос, но не факт, что это получится :)
Предположим есть структура
{
id = 1
Name = petya
LastName = ...
Age = ...
Description = ....
}
База - SQLite3
Получаю Put запрос на обновление данных, но не всех, а только части(например приходит json {id:1 name:"Vasya"}
Можно как то написать UPDATE не зная количества параметров для обновления?

Alexander
26.09.2017
08:31:35
func MakeUpdateQuery(table string, set map[string]interface{}, where map[string]interface{}) (string, []interface{}) {
keys := make([]string, 0, len(set))
vals := make([]interface{}, 0, len(set))
wkeys := make([]string, 0, len(where))
for key, val := range set {
keys = append(keys, key+"=?")
vals = append(vals, val)
}
for key, val := range where {
wkeys = append(wkeys, key+"=?")
vals = append(vals, val)
}
return fmt.Sprintf(
"UPDATE %s SET %s WHERE %s",
table,
strings.Join(keys, ", "),
strings.Join(wkeys, ", "),
), vals
}


makas
26.09.2017
08:34:24
func MakeUpdateQuery(table string, set map[string]interface{}, where map[string]interface{}) (string, []interface{}) {
keys := make([]string, 0, len(set))
vals := make([]interface{}, 0, len(set))
wkeys := make([]string, 0, len(where))
for key, val := range set {
keys = append(keys, key+"=?")
vals = append(vals, val)
}
for key, val := range where {
wkeys = append(wkeys, key+"=?")
vals = append(vals, val)
}
return fmt.Sprintf(
"UPDATE %s SET %s WHERE %s",
table,
strings.Join(keys, ", "),
strings.Join(wkeys, ", "),
), vals
}
что бы такой код глаза в чате не выедал выделяй его 3мя апострофами ` в конце и вначале

Google

makas
26.09.2017
08:34:42
аля
слово
буква ёёё

Alexander
26.09.2017
08:35:58
O! Не знал )

makas
26.09.2017
08:36:00
func MakeUpdateQuery(table string, set map[string]interface{}, where map[string]interface{}) (string, []interface{}) {
keys := make([]string, 0, len(set))
vals := make([]interface{}, 0, len(set))
wkeys := make([]string, 0, len(where))
for key, val := range set {
keys = append(keys, key+"=?")
vals = append(vals, val)
}
for key, val := range where {
wkeys = append(wkeys, key+"=?")
vals = append(vals, val)
}
return fmt.Sprintf(
"UPDATE %s SET %s WHERE %s",
table,
strings.Join(keys, ", "),
strings.Join(wkeys, ", "),
), vals
}
воооо, читабельней!
O! Не знал )
1строка пожно и по 1 апострофу, а многостррочные по 3 апострофа

Alexander
26.09.2017
08:37:07
спасибо. А чё еще есть?

g
26.09.2017
08:38:30
func MakeUpdateQuery(table string, set map[string]interface{}, where map[string]interface{}) (string, []interface{}) {
keys := make([]string, 0, len(set))
vals := make([]interface{}, 0, len(set))
wkeys := make([]string, 0, len(where))
for key, val := range set {
keys = append(keys, key+"=?")
vals = append(vals, val)
}
for key, val := range where {
wkeys = append(wkeys, key+"=?")
vals = append(vals, val)
}
return fmt.Sprintf(
"UPDATE %s SET %s WHERE %s",
table,
strings.Join(keys, ", "),
strings.Join(wkeys, ", "),
), vals
}
Спасибо! Круть!

makas
26.09.2017
08:39:20
та вроде ничего такого! единственное когда отвечаешь кому то определенному, то нужно нажимать на сообщение и клацать "ответить" потому что можно прозевать сообщение
оно звуковой сигнал ваще не падает
а когда отвечаешь то звук есть

Alexander
26.09.2017
08:39:58
А вот эта статья 2013 года еще актуальна? https://habrahabr.ru/post/195574/

Andrew
26.09.2017
09:07:10

Mush
26.09.2017
09:14:34
В моём кейсе мне не понравился синкмап из-за необходимости вставлять много данных, на каждую вставку идет лок, вставка работает гораздо дольше чем с 1 общим локом на всю вставку

Valentin
26.09.2017
09:48:48

Daniel
26.09.2017
09:49:14
то есть - в обычной ситуации

Valentin
26.09.2017
09:49:26
func MakeUpdateQuery(table string, set map[string]interface{}, where map[string]interface{}) (string, []interface{}) {
keys := make([]string, 0, len(set))
vals := make([]interface{}, 0, len(set))
wkeys := make([]string, 0, len(where))
for key, val := range set {
keys = append(keys, key+"=?")
vals = append(vals, val)
}
for key, val := range where {
wkeys = append(wkeys, key+"=?")
vals = append(vals, val)
}
return fmt.Sprintf(
"UPDATE %s SET %s WHERE %s",
table,
strings.Join(keys, ", "),
strings.Join(wkeys, ", "),
), vals
}
попробуйте https://github.com/Masterminds/squirrel
Правда я не тестил производительность -)

Google

Max
26.09.2017
11:55:05
у кого-то была проблема на тим сити что не все файлы запускаются?
есть сотня тестов, проходит 60-70 и всё

Mush
26.09.2017
11:57:10
какая строка запуска тестов?

?FLERRY?
26.09.2017
15:34:16
Ребята, привет всем :) Скажите, есть ли тема с xml-to-struct онлайн?
А то большой xml, хорошо бы автоматически сгенерить структуру...

Aleksandr
26.09.2017
15:35:03

?FLERRY?
26.09.2017
15:35:26
я понимаю, что отправить меня в гугл оч хорошая идея (нет), но я, кажется, уточнил - ОНЛАЙН

Aleksandr
26.09.2017
15:35:54

?FLERRY?
26.09.2017
15:36:02
думаешь я этого не делал?

Aleksandr
26.09.2017
15:36:25
не в курсе. странно что ты спрашиваешь у чата что не нашел в гугле. мы одним гуглом пользуемся

?FLERRY?
26.09.2017
15:36:57
ну, мало ли, есть какой-то сервис, который не проиндексировало

Mush
26.09.2017
15:49:15
есть шанс сделать собственный сервис )

AxiS
26.09.2017
15:55:02

?FLERRY?
26.09.2017
15:55:17
еще один

AxiS
26.09.2017
15:55:38
Что мешает самому онлайн поднять?
если гугл не нашел, велика вероятность что такого еще нет

?FLERRY?
26.09.2017
15:56:17
-_- не, ну серьезно. Я же спросил, что мне надо. Каким чертом меня надо спрашивать о "самому поднять" :)
но все же лучше готовенькое
шот с json-ом куча

Google

Mush
26.09.2017
15:57:17

?FLERRY?
26.09.2017
15:57:39
странный интернет :D

AxiS
26.09.2017
15:58:05
шот с json-ом куча
если принципиально только онлайн, можно так сделать:
xml -> json -> go struct

?FLERRY?
26.09.2017
15:58:24
да мне нагенерировали софтины кучу структур на один xml
а эт не оч xml значит
блин, да каким хером это апи вообще xml отдает. Какой адекватный человек будет делать апи с xml, а не json -_-
еще и ужасный такой xml
(это я так, жалуюсь на апи сервиса одного :( )

Илья
26.09.2017
16:04:12
вот поэтому и нет online
:)

?FLERRY?
26.09.2017
16:05:03
ненавижу xml )

AxiS
26.09.2017
16:07:54
ненавижу xml )
К сожалению он все еще много где используется
многие компании от SOAP никак не уйдут

Oleksandr
26.09.2017
16:08:05

?FLERRY?
26.09.2017
16:08:13

Oleksandr
26.09.2017
16:08:18
вполне

?FLERRY?
26.09.2017
16:08:27

Oleksandr
26.09.2017
16:08:47
там куча стремных наворотов, конечно, но никто не заставляет их юзать
хмл типизирован, по крайней мере

AxiS
26.09.2017
16:09:28

?FLERRY?
26.09.2017
16:10:33
:(

Google

?FLERRY?
26.09.2017
16:10:47
а на го как-нить без структуры огромный xml можно спарсить?

Vasily Romanov
26.09.2017
16:11:05
можно
https://golang.org/pkg/encoding/xml/#NewDecoder

Aleksandr
26.09.2017
16:15:19
серьезно?
так можешь сформулировать проблемы xml?

Daniel
26.09.2017
16:15:51
он для машин

?FLERRY?
26.09.2017
16:16:03
разве что читабельность

Aleksandr
26.09.2017
16:16:20

?FLERRY?
26.09.2017
16:16:30
минутку...
сейчас статейку одну скину
Вроде все сразу ясно должно стать

Axm
26.09.2017
16:18:02
сейчас статейку одну скину
это тот чувак на хабре, который придумал еще один ненужный формат отображения данных? клево, авторитетное мнение по xml.

?FLERRY?
26.09.2017
16:18:35
я согласен с тем, что написано в этой таблице. Причем здесь чувак? :)

Axm
26.09.2017
16:18:49
ты ее кинул как пруф

?FLERRY?
26.09.2017
16:18:57
абсолютно нет
тем более, что пруфать нечего

Aleksandr
26.09.2017
16:19:05