Проверка импорта файлов в доменном дизайне - PullRequest
0 голосов
/ 17 октября 2019

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

Какой лучший способ DDD сделать это? Логика проверки довольно сложна, и я не хотел бы дублировать проверку файла CSV в домене. Также файловая структура является более плоской структурой, которая отличается от совокупности доменов. Так что даже если я проверю агрегат, информация о строке будет потеряна.

1 Ответ

0 голосов
/ 17 октября 2019

Какой лучший способ DDD сделать это? Логика проверки довольно сложна, и я не хотел бы дублировать проверку файла CSV в домене.

Чтобы выполнить что-то подобное, вы можете использовать Saga или Process Manager. Он сохранит вашу позицию в файле и выдаст команды вашим агрегатам для выполнения импорта файла. Если команды не выполняются или отклоняются, вы можете обновить соответствующие строки сообщениями об ошибках, которые выдает домен.

Кроме того, файловая структура является более плоской структурой, которая отличается от совокупности доменов. Так что даже если я проверю агрегат, информация о строке будет потеряна.

Вы можете сгруппировать записи в файле, если это необходимо, но сага должна вести запись номеров строк и соответствующих команд. Вы можете выбрать модель самого файла в качестве Агрегата, который также обеспечит преимущества. Исключение таких концепций предметной области, как это, усложнит ситуацию в будущем, но добавление их в дизайн будет стоить времени.

Я могу предоставить более подробную информацию, если вы сможете объяснить: используете ли вы DDD, CQRS, ES, очереди, асинхронность и т. Д.? Как объяснил @Dnomyar, вы также можете объяснить, где вы сталкиваетесь с реальными трудностями.

...