shad-go/shopfront
2024-06-05 20:36:34 +03:00
..
docker-compose.yaml Updated to the most recent version, which uses go 1.22 2024-06-05 20:36:34 +03:00
model.go Add shopfront task 2022-03-31 16:21:18 +03:00
README.md Updated to the most recent version, which uses go 1.22 2024-06-05 20:36:34 +03:00
shopfront.go Add shopfront task 2022-03-31 16:21:18 +03:00
shopfront_test.go Updated to the most recent version, which uses go 1.22 2024-06-05 20:36:34 +03:00

shopfront

В этой задаче вам нужно реализовать хранилище счётчиков посещений поверх redis.

  • Метод RecordView запоминает, что пользователь посетил страницу item-а.
  • Метод GetItems загружает счётчики для пачки item ов. В поле item[i].Viewed должен быть записан флаг, означающий, что пользователь посетил i-ый item.

В этой задаче есть benchmark-и. Чтобы пройти его, ваше решение должно использовать pipelining.

Запуск тестов на linux

Для работы тестов на ubuntu нужно установить пакет redis-server.

sudo apt install redis-server

Если вы работаете на другом дистрибутиве linux, воспользуйтесь своим пакетным менеджером.

Тесты сами запускают redis в начале, и останавливают его в конце.

Запуск redis в docker

Комментарии по запуску бд в docker смотрите в задаче dao.

(cd shopfront && docker compose up -d --wait && env REDIS="localhost:6379" go test -v ./... -count=1 || true && docker compose down)