DollyPapper, в данном случае нам известно количество данных (5 штук), значит можем создать слайс на 5 элементов и горутины пусть кладут результат каждая в i-ю ячейку. Просто и эффективно.
Fledme_r, структуры использовать для группировки данных.
Не все пакеты можно вырвать из репозитория и перенести в другой, у вас в проекте всегда основная часть пакетов будет внутри папки internal и предназначены только для одного проекта.
Пакеты, полностью состоящие из бойлерплейта это как раз хорошая практика, таким образом можно вынести бойлерплейт отдельно от логики проекта.
на хабр вряд ли получится объединить все в одну статью, все мои применения дженериков были довольно разнородные, но в ответ сейчас мой любимый пример опишу
s60, https://go.dev/play/p/JQ_i_hj5iPZ
шэдоуинг — это когда во вложенном скоупе создаем переменную с таким же именем
такое может возникать при использовании частых имен типа i, err
Очень много кода приведено, причем без комментариев и огромными функциями. Советую побить логику на более понятные логические блоки и отдельно их покрыть тестами. Тогда ошибку будет выловить гораздо легче.