Назад к задачам
КуперПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
18
In‑memory кэш профилей пользователей с ограничением времени жизни (TTL)
Компании, где спрашивали:
Условие задачи
Необходимо разработать кэш, работающий в оперативной памяти, который:
- По уникальному идентификатору (UUID) пользователя возвращает его профиль и связанные заказы.
- Хранит данные только в течение заданного периода — по истечении TTL запись автоматически удаляется.
- Позволяет выполнять операции над заказами: добавление нового, обновление существующего и удаление.
- Содержит набор тестов, иллюстрирующих типичное использование кэша.
package main
import (
"log"
"time"
)
type UserProfile struct {
UUID string
Name string
Orders []Order
}
type Order struct {
UUID string
CreatedAt time.Time
UpdatedAt time.Time
Basket interface{}
}
func main() {
x := 2 + 2
if x != 4 {
log.Fatalf("expected 4, got %d", x)
}
log.Println("Tests passed")
}