170 похожих чатов

For i := range u.Prizes { prize,

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
}

Подскажите, пожалуйста, как избавиться от дублирования ?

22 ответов

6 просмотров

Без дженериков сложно. Оно вам надо?

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

wm0- Автор вопроса
Alexandr Sokolov
Без дженериков сложно. Оно вам надо?

С удовольствием бы просто копипастнул, но там 6 таких блоков кода получается, я тут обработку ошибок ещё пропустил

wm0- Автор вопроса
Alexey Gevondyan
зачем? эти два куска кода будут меняться по одной ...

По сути да. Это просто превращение id в структуру.

wm0
С удовольствием бы просто копипастнул, но там 6 та...

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

Alexandr Sokolov
Без дженериков сложно. Оно вам надо?

Они же же уже приняты и возможно скоро заедут?

wm0
По сути да. Это просто превращение id в структуру.

что-то я не очень понимаю смысл кода... берется слайс из u, его значения куда-то передаются, потом обратно же записываются обработанные?

Maksim Terichev
Они же же уже приняты и возможно скоро заедут?

Приняты, но скорее всего весной, если я правильно помню

Maksim Terichev
Они же же уже приняты и возможно скоро заедут?

Приняты. Заедут. Но использовать их сейчас точно не стоит в проде, а без них тоже как-то нужно жить)

Alexandr Sokolov
Приняты. Заедут. Но использовать их сейчас точно н...

живут вполне себе не плохо) если система спроектирована верно, то проблемы не возникает обычно.

Johnny Ipcom🇺🇦
Приняты, но скорее всего весной, если я правильно ...

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

Alexey Gevondyan
живут вполне себе не плохо) если система спроектир...

Да, конечно. Но этот кейс как раз один из немногих случаев, когда проблемы возникают. При условии того, что автор нигде не заблуждается)

Alexandr Sokolov
1.18, если все пойдет по плану. То есть оптимистич...

Они так-то уже в tip (то есть в master ветке) есть, так что можно наверняка говорить, что будут в 1.18

Alexandr Sokolov
Да, конечно. Но этот кейс как раз один из немногих...

мне кажется там происходит что-то странное)

wm0- Автор вопроса
Alexey Gevondyan
что-то я не очень понимаю смысл кода... берется сл...

Есть два слайса, первый содержит id, второй пустой. По id идёт запрос в бд, получается структура, она записывается во второй слайс. Изначально суть в том, что в бд у меня все в виде id хранится, а фронту надо список структур отдать.

Владимир Столяров
Они так-то уже в tip (то есть в master ветке) есть...

Это все еще очень оптимистично так как никто не исключает появление критических проблем в любой части их реализации

wm0
Есть два слайса, первый содержит id, второй пустой...

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

wm0
Есть два слайса, первый содержит id, второй пустой...

Тут наверно не сервис нужен а репозиторий с методом GetByIds

wm0
Есть два слайса, первый содержит id, второй пустой...

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

Alexandr Sokolov
Это все еще очень оптимистично так как никто не ис...

В любом случае это более оптимистично, чем сеть в std lib C++

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Подскажите, есть какие-то события создания/уничтожения у TFrame по типу TForm (OnCreate и OnClose/OnDestroy) ? Как отловить создание TFrame и "перед" уничтожением. На Tframe р...
Денис
8
Карта сайта