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 ответов

24 просмотра

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

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

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++

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта