Files
3ybactuk-marketplace-go-ser…/docs/homework-5/README.md
2025-07-06 20:52:27 +00:00

36 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Домашнее задание по модулю "Многопоточное программирование"
## Основное задание
Уменьшить время ответа cart.list.
- Распараллельные вызовы ручки http://route256.pavl.uk:8080/docs/#/ProductService/ProductService_GetProduct продакт
сервиса
- Самим написать аналог https://pkg.go.dev/golang.org/x/sync/errgroup и использовать его
- В случае ошибки - отменять все текущие запросы и вернуть ошибку из errgroup
- При общении с Product Service необходимо использовать лимит 10 RPS на клиентской стороне
- Группа живет в рамках одного запроса = группа не переиспользуется между запросами
- in-memory репозитории защитить мьютексами
## Дополнительное задание
- Тесты на многопоточность in-memory репозитория
- Грейсфул завершение приложения (использовать signal.Notify)
- Контроль утечек (горутин через https://github.com/uber-go/goleak)
- Контроль рейзов (через тесты с флагом -race)
- Реализовать параллельный запуск тестов
## Автоматические проверки
Ваше решение должно проходить автоматические проверки:
- Компиляция
- Линтер
- Unit-тесты
- Code coverage >40%
- Автотесты
Прохождение автоматических проверок влияет на итоговую оценку за домашнюю работу.
### Дедлайны сдачи и проверки задания:
- 28 июня 23:59 (сдача) / 1 июля, 23:59 (проверка)