Work Executor: постановка бизнес-задачи
My Frameworks | создано: 04.02.2025 | опубликовано: 15.02.2025 | обновлено: 09.04.2025 | просмотров: 353
«Перебор» задач из списка для получения результата.
Пользовательская история (User Story)
- Хочется получать гео-данные от нескольких сервисов, которые предоставляют услуги.
 - Хочется максимально экономить финансовые средства, потому что сервисы могут предоставлять как платные (например, «подписка»), так и бесплатные услуги.
 - Хочется получить данные как минимум с одного из сервисов в списке доступных.
 - Хочется добавлять сервисы в список доступных для запросов и удалять из списка (без сборки и публикации ПО).
 - Хочется указывать приоритетные сервисы с учетом цены, времени ответа, вероятности ошибок и т.д. и т.п.
 - Хочется иметь статистику о том, какой сервис сколько раз сработал и во сколько это обошлось.
 - Хочется, чтобы при разработке использовались сервисы-заглушки (fake-services)
 - Хочется, чтобы в разных регионах (страны, материка, Земли) могли быть использованы разные группы сервисов.
 
Абстракция – наше всё!
Если представить, что реализация требований завершена, то как можно было бы еще использовать этот механизм? Какие данные можно было бы обрабатывать подобным способом? Могу предположить следующее:
- Гео-данные
 - Прогноз погоды
 - Курсы валют
 - Проверка личных данных (ИНН, платежеспособность и т.д.)
 - Проверка документов (паспорт, водительские права, т.д.)
 - Проверка компаний/фирм/предприятий (рейтинг, банкротство, отзывы и т.д.)
 - Получение цен на товары и услуги (магазины, сервисы агрегаторы и т.д.)
 - Авторизация (github.com, goolge.com, ok.ru, vk.com и т.д.)
 
Постановка задачи на разработку
- Требуется реализовать обособленную сборку (nuget-пакет), который можно установить в проект и реализовать несколько вариантов «перебора» сторонних сервисов.
 - Требуется использовать Dependency Container
 - Требуется реализовать возможность вызова отдельно от механизма «перебора», например, для unit-тестов
 - Требуется прерывать выполнение «перебора» сервисов, то есть применить таймаут на все запросы.
 - Требуется обрабатывать каждый из результатов запроса на сервис в процессе «перебора».
 - Если в процессе «перебора» сервисов были ошибки, требуется возможность знать он них «централизовано».
 - Если ни один из зарегистрированных сервисов не вернул данные, требуется вернуть значение по умолчанию (при необходимости).
 
Видео
Мои видео
Boosty.to | YouTube | Yandex.Дзен | RuTube | VK Video
