Для применения DDD в разработке Go-приложений рекомендуется:
- Изучить предметную область. 2 Это может быть любая задача или проблема, решению которой должна способствовать создаваемая программа. 2 Приложение следует конструировать так, чтобы его архитектура отражала структуру предметной области. 2
- Создать доменный слой. 1 Он служит основой для определения фундаментальных понятий, правил и процессов, которые применяются к конкретной проблемной области. 1 Этот слой не должен зависеть от внешних деталей реализации и должен функционировать независимо. 1
- Содержать доменные типы и логику в корне репозитория. 1 Так другие разработчики смогут импортировать их в качестве зависимостей при необходимости. 1
- Создать внутренний пакет для повторно используемых компонентов, которые используются в нескольких бинарниках. 1 К ним могут относиться пакеты с базами данных, кешем, брокерами сообщений и т. д.. 1
- Использовать репозитории для хранения и управления агрегатами. 2 Взаимодействие с хранилищем следует скрывать за интерфейсом реализации. 2 Это позволит заменить реализацию без опасения что-либо сломать. 2
Согласно DDD, команда разработки должна постоянно взаимодействовать с экспертами в предметной области. 2 Именно эти люди хранят знания, которые необходимо отразить в коде приложения. 2