This repository has been archived on 2023-12-05 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
3cd5738a13581e9e1c68014b79e8287b7904ee67
Запуск
Первый запуск:
make first_run
Команда запустит БД (PostgreSQL 15), Rest-сервис,
накатит миграцию в БД и заполнит базу рандомными данными
(2 миллиона записей).
Повторный запуск сервиса:
make start
Вызов метода проверки дубликатов:
curl -X GET --location "http://127.0.0.1:8001/124/432"
Отдельно добавил выгрузку тестовых данных из БД:
curl -X GET --location "http://127.0.0.1:8001/list" > data.txt
Запрос с гарантировано дублируемыми IP:
curl -X GET --location "http://127.0.0.1:8001/88888/99999"
Комментарии к реализации
Есть тесты на основной метод репозитория (с использованием docker через либу dockertest), на остальное тестов не делал. Добавил ещё бэнчмарк и fuzzy-тест, но они работать будут только при запущенном в докере сервисе.
При запуске вся база подтягивается в локальный кэш. Кэш обновляется по умолчанию каждую секунду (настраиваемо, подтягиваются только новые записи). Был вариант ещё вместо обновления по тикеру сделать триггер в бд и через notify/listen постгреса добавлять новые записи в кэш. Было бы эффективнее, но на данном этапе выглядит как оверинженеринг.
Для продакшена не хватает метрик и алертов в сентри, но на это уже времени тратить не хочется.
Description
Languages
Go
96.9%
Dockerfile
2.2%
Makefile
0.9%