Size: a a a

2021 June 09

AD

Alex Dok in Go-go!
Gopath меняете?
источник

RL

Ragnar Lodbrok in Go-go!
Нет,  каждое приложение лежит отдельно, а модели копируются.
Если речь про микросервисы
источник

LV

Lasha Valishvili in Go-go!
да чтобы все в одну кучу не забывать, к тому же в основном это приватные репозиторий
источник

LV

Lasha Valishvili in Go-go!
нет это не микросервиси, можно их назвать просто сервисамы, например апи для работы с прилочением отдельный сервис, с админкой отдельный
это потому что часто приходиться на разные сервера их заливать
источник

LV

Lasha Valishvili in Go-go!
а так можно было бы один монолит сделать, с одним сервером
источник

LV

Lasha Valishvili in Go-go!
просто в интернете я не нашел один единый стиль построения структуры рест апи, все они разные и как правильно делать не понятно, та же бизнес логика у некоторых на самом верхнем уровне а не в internal, например в том же Laravel, NestJS структура уже прописана и понятно что куда как класть. golang-standards/project-layout в этом стандарте только верхние слой прописаны
источник

RL

Ragnar Lodbrok in Go-go!
У вас они разделены, как разные приложения, зачем их смешивать в одном репозитории?
источник

LV

Lasha Valishvili in Go-go!
чесно говоря так проше разрабатывать, когда не приходиться переключаться между несколькимы проектамы
и если нужно в модельках или вспомоготельных пакетах что нибудь добавить или изменить все сразу делаеться, а так в 5 проектах нужно будет одно и тоже скопировать
источник

RL

Ragnar Lodbrok in Go-go!
Не претендуя на правильность, но я строю архитектуру приложения примерно так:
cmd/
|-app/
     |- main.go
internal/
|-domain/  - models are here
|-repository/ - here work with repos
|- server/ - handlers and http server here
|- service/ - business logic here
источник

LV

Lasha Valishvili in Go-go!
да примерно так я и делал когда бинарник был один
сейчас просто думаю что вместо стандартных папок репозитория сервера и сервисов, сделать что то вроде модулей как в angular nestjs

вроде этого
https://github.com/cardinaltm/project-types/tree/master/type2-clean-architecture-modules/internal/app1/event

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

как вам кажеться, такая структура в golang имеет место быть?, просто не у кого такое не видел
источник

RL

Ragnar Lodbrok in Go-go!
Я еще раз повторю - вам надо сделать два репозитория

И зачем вы ориентируетесь на js репозитории, если пишете на go?
источник

LV

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

v

vs in Go-go!
Кто-нибудь работал плотно с sqlc? Меня интересует как в prepared statements передать динамическое количество значений? WHERE field IN($1) в структуре делает поле со значением int16, а мне нужен массив значений
источник

ZZ

Zorro Zorroff in Go-go!
какая бд?
источник

v

vs in Go-go!
pgsql
источник

ZZ

Zorro Zorroff in Go-go!
конвертируешь список в строку, через запятую, передаешь одним параметром, в sql ее распаковываешь средствами pgsql, и не имеешь геморов.
источник

v

vs in Go-go!
я про эту либу https://sqlc.dev/
источник

ZZ

Zorro Zorroff in Go-go!
этому подходу сто лет в обед (компиляция из ембеддед sql в языки), и твоей проблеме столько же лет. Решение универсальное даю 8)
источник

ZZ

Zorro Zorroff in Go-go!
const listAuthors = `-- name: ListAuthorsByIDs :many
SELECT id, bio, birth_year FROM authors
WHERE id = ANY($1::int[])
`

func (q *Queries) ListAuthorsByIDs(ctx context.Context, ids []int) ([]Author, error) {
 rows, err := q.db.QueryContext(ctx, listAuthors, pq.Array(ids))
источник

ZZ

Zorro Zorroff in Go-go!
удивительно, но тут ее включили в поставку 8)
источник