Skip to content

vacmannnn/comp-club-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание на должность инженера по разработке ПО для базовых станций (Go)

Прототип системы, которая следит за работой компьютерного клуба, обрабатывает события и подсчитывает выручку за день и время занятости каждого стола.

Более подробное описание задания есть в файле.

Запуск

После скачивания проекта есть несколько способов запуска программы

git clone git@github.com:vacmannnn/comp-club-manager.git

Docker container

Сборка с помощью Docker:

docker build -t manager .

Запуск программы:

docker run -v .:/app manager:latest ./test_logs/logs.txt

Последним аргументом указывается относительный путь до файла с логом компьютерного клуба. Предполагается, что лог-файл находится в запускаемой директории.

Build and run with Go

С исполняемым файлом:

go build -C ./src -o ../manager
./manager test_logs/logs.txt

Без создания исполняемого файла:

go run ./src ./test_logs/logs.txt

Тесты

Кроме базового случая из описания задания, были написаны тесты для следующих сценариев:

  • Клиент хочет сесть за несуществующий стол
  • Событие с номером N произошло до события N-1
  • Неккоректное время работы клуба
  • Корректный сценарий работы клуба, при котором возникают ошибки в действиях клиентов (попытка пересесть за свой же стол, не пришедший клиент покидает клуб и подобное)