Skip to content

Instantly share code, notes, and snippets.

@ixpectus

ixpectus/task.md Secret

Last active May 14, 2024 11:47
Show Gist options
  • Save ixpectus/aec3f753a3209fbd8100c1b2c42d5756 to your computer and use it in GitHub Desktop.
Save ixpectus/aec3f753a3209fbd8100c1b2c42d5756 to your computer and use it in GitHub Desktop.

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

Разработать приложение, которое будет предоставлять REST API для запуска команд. Команда представляет собой bash-скрипт. Приложение должно позволять параллельно запускать произвольное количество команд.

Требования по функционалу

Приложение должно иметь базу данных для хранения команд.

API приложения должно содержать следующий функционал:

  • Создание новой команды. Запускает переданную bash-команду, сохраняет результат выполнения в БД.
  • Получение списка команд
  • Получение одной команды

Написать тесты.

Написать инструкцию по запуску программы.

Если какие-то требования не указаны, либо имеют двойное толкование, то они остаются на усмотрение соискателя. Желательно в записке к решенному заданию описать, какие вопросы возникали и какие решения были приняты.

Задания со "звездочкой"

Эти задания не обязательны для выполнения, однако позволят вам более полно показать свои знания и навыки.

  • Добавить в API метод для остановки команды
  • Поддержка долгих команд (сохранять вывод команды в БД по мере ее выполнения, отображать вывод при получении одной команды)
  • Сборка и деплой приложения. (Например: сборка deb/rpm-пакетов, Docker-образов, настроенный пайплайн в Gitlab CI, и пр.)
  • Можно добавить произвольный функционал, чтобы более полно показать свои навыки, но в таком случае обязательно его задокументировать
  • Принятые в ходе разработки решения описать в виде ADR

Используемые технологии

Операционная система: MacOS или Linux (дистрибутив на выбор соискателя, указать выбранный в записке к решенному заданию)

Язык программирования: Golang

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

База данных: Postgres

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment