Skip to content

vaneska/mars-rover-tdd

Repository files navigation

Outside-in TDD starter

Привет!

В этой практике предлагаем создать приложение для управления планетоходом через 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 и раскомментируйте нужный.

Задание

  1. Реализуйте обработку команд для планетохода в соответствии с правилами. Используйте приёмочные тесты для самопроверки.

    • реализуйте валидацию ввода
    • реализуйте доставку команд на планетоход
  2. Сделайте пользовательский интерфейс для отправки команд.

  3. Сделайте очередь команд на выполнение и интерфейс, показывающий команды в очереди

  4. Добавьте возможность отменить очередь команд

Удачи!

rover

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published