platon-p / flood-control-task

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестовое задание

Стандартная реализация

В пакете control лежит реализация предложенного интерфейса. Внутри он использует интерфейс хранилища. Использование интерфейса хранилища позволяет гибко настраивать работу с хранилищем, например, использовать вместо моей реализации (хранилище в памяти) какую-либо реляционную базу данных (PostgreSQL, MySQL, SQLite) или NoSQL базу данных (MongoDB, Redis).

В пакете storage лежит реализация хранилища, которое хранит данные в памяти.

Черный список

Помимо стандартной реализации, я реализовал проверку нахождения в черном списке. Пользователи, которые находятся в BlackListStorage (интерфейс хранилища черного списка), не проходят проверку.

Логирование

Пакет control логирует результаты проверки. Реализация логирования - стандартный пакет log.

Тесты

Каждый пакет содержит свои тесты. Общее покрытие около 80%.

About


Languages

Language:Go 100.0%