Как была сформулирована типовая backend-задача на предыдущем месте работы?

«Как была сформулирована типовая backend-задача на предыдущем месте работы?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Типовая задача формулировалась как User Story с техническими деталями в Confluence/Jira.

Пример задачи по разработке REST API:

Title: [Backend] Реализация эндпоинта для создания заказа

User Story: Как авторизованный клиент, я хочу создать новый заказ из товаров в корзине, чтобы завершить покупку.

Technical Description:
- Эндпоинт: POST /api/v1/orders
- Аутентификация: JWT (требуется роль USER или CLIENT)
- Входные данные (OrderRequestDto):
  *   cartId (UUID)
  *   shippingAddress (String)
  *   paymentMethodId (String) // Ссылка на сохраненный метод в Stripe

Business Logic:
1.  Валидация DTO.
2.  Проверка наличия и актуальности корзины.
3.  Расчет итоговой суммы с учетом налогов.
4.  Создание платежного интента в Stripe.
5.  Сохранение заказа в БД со статусом "PENDING_PAYMENT".
6.  Логирование события создания заказа.

Acceptance Criteria:
- Эндпоинт возвращает 201 Created и OrderResponseDto с ID заказа.
- При отсутствии JWT-токена возвращается 401.
- При невалидной корзине возвращается 400 с описанием ошибки.
- Информация о платеже сохраняется в таблице `payments`.

Tech Stack: Spring Boot, Hibernate (JPA), PostgreSQL, Stripe SDK.

К задаче прилагались ссылки на спецификацию API (Swagger) и схему соответствующих таблиц в БД.