В этой практике предлагаем создать приложение для управления планетоходом через HTTP. У него есть 3 команды: ехать вперёд, повернуть налево и повернуть направо. Проблема в том, что выполнение занимает какое-то время, и ученые хотят посылать команды пачками и получать от ровера в ответ его конечное местоположение.
Работаем по TDD и стремимся к тому, чтобы ни одной строчки продакшен кода не было написано, если эта строчка не требуется для прохождения тестов.
Можно использовать любой язык – Perl, Python, JS. Можно использовать любой дизайн и архитектуру. Обсуждайте в команде и принимайте решения самостоятельно. Но помните принцип: make it work, make it right, make if fast. Если чувствуете, что забуксовали – делайте как-нибудь, а потом сделайте рефакторинг.
Для всех сервисов есть Dockerfile, можно запускать их по отдельности. Чтобы запустить всё разом, можно использовать docker compose:
docker-compose -f ./docker-compose.dev.yml up --build
По-умолчанию запускается сервис обработки команд на Node JS, если вы выбираете другой язык – закомментируйте server-node и раскомментируйте нужный.
-
Реализуйте обработку команд для планетохода в соответствии с правилами. Используйте приёмочные тесты для самопроверки.
- реализуйте валидацию ввода
- реализуйте доставку команд на планетоход
-
Сделайте пользовательский интерфейс для отправки команд.
-
Сделайте очередь команд на выполнение и интерфейс, показывающий команды в очереди
-
Добавьте возможность отменить очередь команд