Я пытаюсь внедрить DDD-архитектуру в свои прикладные модули и встать с проблемой хранения похожих (зависимых) структур между ними.Golang DDD реализация зависимых модулей
В первом пакете я хранить все, что связано с организацией Люди: Услуги (Хранилища), контроллеры, модели и т.д. ...
Во втором пакете хранить все, что связано с другим объектом Квартира: Услуги (Хранилища), контроллеры, модель и т.д. ...
каждого квартира может содержать несколько арендаторов, которые хранятся в базе данных в одной и те же структуры, как человек.
Некоторых квартира пакета услуги должны быть в состоянии назвать такие методы, как получить/обновление/... Арендаторов. Я бы с удовольствием не повторно реализовать эти действия и используйте их из реализаций в Людях пакета PeopleService, но эта служба возвращает People объекта, а не Арендатора.
Должен ли я создать дополнительную структуру (копировать-вставить весь исходный код) Люди в апартаменты пакет , назовем его Арендатором и преобразования типов возвращаемых из PeopleService к нему?
Или есть другой способ сделать это?
Кроме того, где я должен хранить интерфейсы служб/репозиториев (интерфейсы с подобными CRUD-методам) конкретного объекта? Если интерфейс PeopleService будет как в Люди и Квартира пакеты?
Спасибо.
DDD - это не архитектура. DDD не имеет ничего общего с CRUD.Если вы можете просто скопировать-вставить код между сущностями и службами, с которыми вы имеете дело с CRUD, вам вообще не нужен DDD и модель домена. Получите генератор приложений CRUD и сделайте это. – plalx