Size: a a a

2020 April 13

МП

Мимо Проходящий... in Go-go!
Владимир Столяров
зависимость от порядка при сравнении
не понял
источник

ВС

Владимир Столяров... in Go-go!
а, там же не значения сравниваются, а просто типы, так что претензия отпадает
источник

ВС

Владимир Столяров... in Go-go!
Мимо Проходящий
пример агрегирования ошибок. Кто укажет реальный (а не выдуманный) недостаток этой реализации, тот молодец
https://play.golang.org/p/hj7TTWlHb_F
а вот кстати вопрос - в Is вначале сравниваются типы и при их совпадении сразу возвращается true, не нужно ли сравнивать то, что и элементы совпадают?
источник

МП

Мимо Проходящий... in Go-go!
Владимир Столяров
а вот кстати вопрос - в Is вначале сравниваются типы и при их совпадении сразу возвращается true, не нужно ли сравнивать то, что и элементы совпадают?
в смысле сразу проверять что target ==we? да, можно, это будет эффективнее. Но там дальше это всё равно проверяется в Is
источник

ВС

Владимир Столяров... in Go-go!
не, я видимо немного не так написал
в данной реализации один multiError с одним набором не будет отличим от multiError с другим набором
источник

NK

Nur Kutlugallyamov in Go-go!
#string #json #[]json #psql
Добрый день!

Есть небольшой вопрос.
Есть []byte, которые я получаю из psql, такого вида (без \n):
{
 "{\"foo\":1,\"boo\":\"100\"}",
 "{\"foo\":2,\"boo\":\"100\"}",
 "{\"foo\":3,\"boo\":\"100\"}"
}

Это массив json-ов и мне нужно с этим как-то работать.
Только есть проблема, что вместо [, ] тут {, }.
Подскажите, пожалуйста, какой-нибудь простой способ смены этих скобок.

Пример в playground:
https://play.golang.com/p/a-fJlFHsAkq
источник

ВС

Владимир Столяров... in Go-go!
так есть же специальный враппер pq.Array, который мапит массив postgres в массив гошный, работает в обе стороны
источник

МП

Мимо Проходящий... in Go-go!
Владимир Столяров
не, я видимо немного не так написал
в данной реализации один multiError с одним набором не будет отличим от multiError с другим набором
там если multiError содержит две ошибки одного типа (например оба os.Open вернули *os.PathError) то errors.As/Is позволит посмотреть только одну из них. Способы решения  -  либо добавить к типу multiError итератор, либо завести кастомный тип реализующий ошибку, для которого тонко настроить As/Is. Я вот пока не уверен как лучше
источник

ВС

Владимир Столяров... in Go-go!
я скорее вот про такую доработку https://play.golang.org/p/6qPrqHI9zfW (см Is)
источник

EU

Egor Urvanov in Go-go!
Возник у нас с коллегами на работе спор. Проблема в том, что мой оппонент утверждает, что сервис не может быть пакетом и это плохо. Я так и не понял, чем это плохо, кроме того, что я теперь не могу использовать go get. И вот это уже плохо и неудобно. При этом в качестве альтернативы предлагается монорепа, в которой хранятся все зависимости и протофайлы. Я же предлагаю всё хранить в локальной репе, рядом с сервисами и воспринимать любой сервис, любую репу как пакет.

Подход моего оппонента для меня выглядит неудобным, поскольку в монорепу будут пушить все и это может вызвать проблемы в виде конфликтов. Кроме того, я вижу также неудобство в версионировании. И третий момент, мне кажется это неудобным с точки зрения разделения логики. Таким образом мы получаем монолитную репу. А микросервисный подход здесь оказывается в стороне (именно его мы пытаемся использовать у нас в проекте).

Таким образом, я бы хотел услышать за и против одной стороны и другой.
источник

DP

Daniel Podolsky in Go-go!
(микро)сервисы ортогональны устройству репы
источник

МП

Мимо Проходящий... in Go-go!
Владимир Столяров
я скорее вот про такую доработку https://play.golang.org/p/6qPrqHI9zfW (см Is)
да, это логично
источник

DP

Daniel Podolsky in Go-go!
но почему сервис не может быть пакетом?
источник

EU

Egor Urvanov in Go-go!
Мимо Проходящий
да, это логично
Что логично? Что из двух вариантов?
источник

EU

Egor Urvanov in Go-go!
Daniel Podolsky
(микро)сервисы ортогональны устройству репы
Поясните
источник

EU

Egor Urvanov in Go-go!
Daniel Podolsky
но почему сервис не может быть пакетом?
Я тоже не очень знаю
источник

NK

Nur Kutlugallyamov in Go-go!
Владимир Столяров
так есть же специальный враппер pq.Array, который мапит массив postgres в массив гошный, работает в обе стороны
А если я просто стащу оттуда Сканер - это не гуд?)
https://play.golang.com/p/KrkRi3HQvrs
источник

ВС

Владимир Столяров... in Go-go!
ваше право конечно, но... зачем?
источник

x

x-foby in Go-go!
Nur Kutlugallyamov
А если я просто стащу оттуда Сканер - это не гуд?)
https://play.golang.com/p/KrkRi3HQvrs
Вам, как уже выше сказали, лучше использовать pq.Array.
Либо изменить запрос на базе таким образом, чтоб он не массив возвращал, а json-массив.
источник

E

Edgar in Go-go!
Egor Urvanov
Возник у нас с коллегами на работе спор. Проблема в том, что мой оппонент утверждает, что сервис не может быть пакетом и это плохо. Я так и не понял, чем это плохо, кроме того, что я теперь не могу использовать go get. И вот это уже плохо и неудобно. При этом в качестве альтернативы предлагается монорепа, в которой хранятся все зависимости и протофайлы. Я же предлагаю всё хранить в локальной репе, рядом с сервисами и воспринимать любой сервис, любую репу как пакет.

Подход моего оппонента для меня выглядит неудобным, поскольку в монорепу будут пушить все и это может вызвать проблемы в виде конфликтов. Кроме того, я вижу также неудобство в версионировании. И третий момент, мне кажется это неудобным с точки зрения разделения логики. Таким образом мы получаем монолитную репу. А микросервисный подход здесь оказывается в стороне (именно его мы пытаемся использовать у нас в проекте).

Таким образом, я бы хотел услышать за и против одной стороны и другой.
А зачем вам вообще делать микросервис пакетом? Чтобы делать go get и юзать внутренние конструкции другого микросервиса?
источник