Перейти к содержанию

Конструирование системы. Часть 5 — Шаблон

Определившись с необходимостью накладывания ограничений на разработку, попробуем реализовать выбранный подход.

В данном материале я буду использовать два репозитория, вам при написании своей реализации можно без болезненно это сложить в один, либо разложить на множество, репозиторий. Например, если сервисы использоваться не будут, и/или они будут по своему монолитны (хотя последний случай спорный, как сами решите).

И так, своим любимым пакетным менеджером, либо любым иным способом «как вам привычно» устанавливаете фреймворк, запускаете «hello, world!», при необходимости добавляете версионирование запросов.

Далее создаем еще одну структуру директорий в которой будем вести бизнес логику, обычно такую структуру принято называть hex. Внутри hex создаем директории:
— case — для сценариев использования
— domain — для логики домена
— source — для источников данных

Далее либо отдельной директорией, либо поддиректориями внутри этих базовых директорий создаем ports для интерфейсов которые мы будем использовать для связности между слоями. Тоже самое проделываем для exceptions.

Стоит заметить, что в качестве DataSource в директории source у нас может выступать не только соединение с базой, но и файловое хранилище, и внешнее апи, и многое другое.

Далее в по необходимости создаем адаптеры, реализующие методы портов (интерфейсов) и пробрасываем запросы по нужным сценариям с помощью конфигурирования менеджера зависимостей.

Более подробно расписывать бессмысленно, так как станет основываться на конкретных технологиях конкретных языков, да и нет в этом особого смысла.

назад

Опубликовано в рубрикеОбщее