Задача
Имеется система настроек пользователя Задача: Реализовать систему подтверждения смены конкретной настройки пользователя по коду из смс / email / telegram с возможностью выбора пользователем другого метода
Какие вы выделили бы слои, абстракции, таблицы?
Реализуйте данную схему без интеграции конкретных сервисов / ORM / прочее на уровне интерфейсов / контроллеров
Решение
Разделим данную программу на несколько слоев.
- Интерфейс пользователя. Это может быть веб-форма, команда или запрос по апи.
- Бизнес-логика. Здесь будет находиться сервис по отправке сообщения пользователю, а также проверка введенного кода подтверждения.
- Слой интеграции. Здесь будет происходить интеграция с внешними сервисами (sms email telegram)
- Слой хранилища данных. Тут могут быть реляционные базы, nosql хранилища и пр. Не реализовываем по условиям задачи.