Work Executor: постановка бизнес-задачи

My Frameworks | создано: 04.02.2025 | опубликовано: 15.02.2025 | обновлено: 15.02.2025 | просмотров: 36

«Перебор» задач из списка для получения результата.

Пользовательская история (User Story)

  • Хочется получать гео-данные от нескольких сервисов, которые предоставляют услуги.
  • Хочется максимально экономить финансовые средства, потому что сервисы могут предоставлять как платные (например, «подписка»), так и бесплатные услуги.
  • Хочется получить данные как минимум с одного из сервисов в списке доступных.
  • Хочется добавлять сервисы в список доступных для запросов и удалять из списка (без сборки и публикации ПО).
  • Хочется указывать приоритетные сервисы с учетом цены, времени ответа, вероятности ошибок и т.д. и т.п.
  • Хочется иметь статистику о том, какой сервис сколько раз сработал и во сколько это обошлось.
  • Хочется, чтобы при разработке использовались сервисы-заглушки (fake-services)
  • Хочется, чтобы в разных регионах (страны, материка, Земли) могли быть использованы разные группы сервисов.

Абстракция – наше всё!

Если представить, что реализация требований завершена, то как можно было бы еще использовать этот механизм? Какие данные можно было бы обрабатывать подобным способом? Могу предположить следующее:

  • Гео-данные
  • Прогноз погоды
  • Курсы валют
  • Проверка личных данных (ИНН, платежеспособность и т.д.)
  • Проверка документов (паспорт, водительские права, т.д.)
  • Проверка компаний/фирм/предприятий (рейтинг, банкротство, отзывы и т.д.)
  • Получение цен на товары и услуги (магазины, сервисы агрегаторы и т.д.)
  • Авторизация (github.com, goolge.com, ok.ru, vk.com и т.д.)

Постановка задачи на разработку

  • Требуется реализовать обособленную сборку (nuget-пакет), который можно установить в проект и реализовать несколько вариантов «перебора» сторонних сервисов.
  • Требуется использовать Dependency Container
  • Требуется реализовать возможность вызова отдельно от механизма «перебора», например, для unit-тестов
  • Требуется прерывать выполнение «перебора» сервисов, то есть применить таймаут на все запросы.
  • Требуется обрабатывать каждый из результатов запроса на сервис в процессе «перебора».
  • Если в процессе «перебора» сервисов были ошибки, требуется возможность знать он них «централизовано».
  • Если ни один из зарегистрированных сервисов не вернул данные, требуется вернуть значение по умолчанию (при необходимости).

Видео

Поблагодарить

Хотите тоже получать донаты? Тогда заходите на boosty.to и регистрируйтесь!

Кстати, я использую хостинг reg.ru. Подключайся с промокодом 9A17-953A-8591-CF98 чтобы получить скидку 5%

Мои видео

Boosty.toYouTube | Yandex.Дзен | RuTube | VK | Nuum.ru