Проверяет понимание состояния, кешей и конкурентной безопасности.
Глобальный кеш приводит к гонкам, неконтролируемому росту памяти и затрудняет тестирование.
Без синхронизации он небезопасен. Лучше использовать структуру с mutex или внешний Redis.
Глобальное состояние — источник множества проблем:
Data race
Конкурентное обновление карты → panic или некорректные данные.
Трудности тестирования
Тесты влияют друг на друга, нужно чистить состояние вручную.
Проблемы масштабирования
Глобальный кеш хранится в памяти одного экземпляра → не подходит для кластеров.
Проблемы OOM
Кеш без политики удаления может переполнить память.
Правильные решения:
обернуть кеш структурой
использовать Redis/Memcached,
добавлять TTL,
применять LRU-кеш.
Вывод:
Глобальные кеши — ок на pet-project, но не в проде без защиты и ограничений.
Уровень
Рейтинг:
3
Сложность:
7
Навыки
Golang
Redis
Ключевые слова
Подпишись на Golang Developer в телеграм