Тестовое задание создано для быстрой проверки знаний и привычек программиста. Выполните базовое + усложнения, до тех пор пока не надоест. Оцениваться прежде всего будет структурирование кода, ведение документации и юнит-тесты.
Написать сервер и клиент:
- Cервер получает число из очереди, если оно делится без остатка на N (устанавливается в конфигурации), то сохраняет его в память.
- Клиент отправляет случайные числа на сервер через очереди.
Все общение между клиентом и сервером должно происходить через очереди (предпочтительнее RabbitMQ) сообщениями в protobuf.
Задания ниже не должны занять у вас много времени, ибо большая вероятность, что сниппеты для подобных действий будут под рукой.
Действия должны логироваться на стороне клиента и сервера. Стоит учесть уникальный идентификатор операции, для разграничения принадлежности логов.
Клиент должен учитывать количество отправленных сообщений, сервер же вести учет прошедших и не прошедших проверок запросов.
У сервера должна быть возможность ограничивать количество обрабатываемых запросов, а у клиента – отправляемых. Ограничения должны устанавливаться в конфигурации.
Создать возможность запросить у сервера все сохраненные числа.
Поместить сервер и клиент в докер-образы и запускать с помощью docker-compose вместе с очередями и прочими нужными интеграционными сервисами.
Настроить проверку линтером и прогон тестов при каждом коммите.