err := c.prizeService.Get(ctx, u.Prizes[i])
user.Prizes[i] = prize
}
for i := range u.Coins {
coin, err := c.coinService.Get(ctx, u.Coins[i])
user.Coins[i] = coin
}
Подскажите, пожалуйста, как избавиться от дублирования ?
Без дженериков сложно. Оно вам надо?
зачем? эти два куска кода будут меняться по одной причине?
С удовольствием бы просто копипастнул, но там 6 таких блоков кода получается, я тут обработку ошибок ещё пропустил
По сути да. Это просто превращение id в структуру.
Тут еще очень верно подметил Алексей. Если бизнес-логика для каждого из этих кусков одинакова, то тогда при очень большом желании можно заморочиться, в противном случае точно не стоит
Они же же уже приняты и возможно скоро заедут?
что-то я не очень понимаю смысл кода... берется слайс из u, его значения куда-то передаются, потом обратно же записываются обработанные?
Приняты, но скорее всего весной, если я правильно помню
заедут в обозримом будущем
Приняты. Заедут. Но использовать их сейчас точно не стоит в проде, а без них тоже как-то нужно жить)
живут вполне себе не плохо) если система спроектирована верно, то проблемы не возникает обычно.
1.18, если все пойдет по плану. То есть оптимистично можно ждать в феврале, а прагматично я не уверен, что их сразу можно безбоязненно будет использовать в проде
Да, конечно. Но этот кейс как раз один из немногих случаев, когда проблемы возникают. При условии того, что автор нигде не заблуждается)
Они так-то уже в tip (то есть в master ветке) есть, так что можно наверняка говорить, что будут в 1.18
мне кажется там происходит что-то странное)
Есть два слайса, первый содержит id, второй пустой. По id идёт запрос в бд, получается структура, она записывается во второй слайс. Изначально суть в том, что в бд у меня все в виде id хранится, а фронту надо список структур отдать.
Это все еще очень оптимистично так как никто не исключает появление критических проблем в любой части их реализации
Так тогда надо прямо точно грузить все (хотя бы для одного типа) одним запросом
Тут наверно не сервис нужен а репозиторий с методом GetByIds
т.е. по сути загрузка сущностей по ids? нуу... в общем копипаста - не всегда признак проблемы. мне кажется что в данном случае таки не будет изменяться весь этот код под одной причине. скорее если только захочется переделать механизм получения объектов по ид-шникам... но это другое
В любом случае это более оптимистично, чем сеть в std lib C++
Ахахах, тут вообще не спорю)
Обсуждают сегодня