Проект выполнен с использованиям подхода Clean Architecture и Rich Model, а также паттерна Value Object.
На слое domain лежат наши бизнес сущности. В данном случае в качестве бизнес сущности я выделил Запрос (Request
), который содержит два поля Имя сайта (site_name: SiteName
) и Интервал запроса в мс (interval_duration_millisec: IntervalDuration
).
SiteName
и IntervalDuration
являются вэлью обджектами и умеют сами себя валидировать, что позволяет использовать подход Test Driven Development и, соответственно, писать Unit Test'ы для автоматических тестов доменных сущностей.
На слое usecase находится функция проверки состояния сайта.
Инфраструктурный слой отсутствует, поскольку не добавлена логика вывода отображения на экран.
Если бы потребовалось писать данные в базу или выводить данные на экран с применением более сложной логики при помощи какого-то специального крэйта (Например, clap), то инфраструктурный слой был бы добавлен.