Skip to content

Latest commit

 

History

History
71 lines (48 loc) · 6.02 KB

README.md

File metadata and controls

71 lines (48 loc) · 6.02 KB

Требования по направлению Backend

Цель

Разработать Backend сервис, который позволит автоматизировать процесс работы небольшой пиццерии.

Описание

Представьте себе существующую, работающую исключительно в режиме ресторана пиццерию. Владелец, Ваш знакомый, хочет увеличить охват аудитории и обратился к Вам за помощью. Дальнейшие планы развития пиццерии и функционал системы Вы обсудили с ним, и знаете, что должен уметь сервис.

Реализация

Публичным интерфейсом для взаимодействия с системой должен выступать протокол HTTP и/или основанные на нём (WS, Server events, gRPC...). При записи видео ролика важно продемонстрировать работу сервиса при помощи каких либо инструментов по типу Insomnia, Postman, DataGrip и прочих, способных наглядно показать, как работает Ваше приложение.

При реализации Вы можете выбрать любой способ организации компонентов (монолит/сервисы/микросервисы/беcсерверная архитектура) и масштаб.

Критерии

  • Целостность созданного сервиса

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

  • Архитектурная составляющая

    В современных фреймворках приняты устоявшиеся подходы и практики, например использование MVC. Обоснование "сделано при помощи архитектуры N потому что я её знаю/захотелось попробовать" будет более чем достаточно, при этом если некоторая архитектура выбрана - важно её придерживаться.

  • Документация

    Описание того, как можно взаимодействовать с сервисом (Wiki, OpenAPI, Swagger...).

  • Грамотное использование ресурсов

    Стоит обратить внимание на то, как Вы используете вычислительные мощности. Например, отправлять 5 SQL запросов вместо одного сложного выгодно не всегда. Нет цели выдать 100500 запросов в наносекунду на Raspberry Pi. Помните, что "Преждевременная оптимизация – корень всех зол".

Технологии

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

Сегодня в лаборатории для написания Backend сервисов используются следующие технологии:

Желательно реализовывать проект с использованием технологий, описанных выше, для простоты дальнейшего встраивания в рабочий процесс. Но в рамках тестового задания жестких ограничений на используемый стек нет

Окружение

Будет полезно обратить внимание на следующее:

  • Тесты (Unit, e2e, integration...)

    Backend сервисы как правило используются перечнем клиентов, и тесты, подтверждающие функциональность системы, приносят пользу.

  • Docker

    Возможность запуска приложения в Docker позволяет оперативно встроить разработанное решение в существующие процессы.

  • База данных

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