Переход от MVC с шаблоном хранилища сервисов к DDD и CQS в проекте ASP.NET.Что нам делать с бизнес-логикой? - PullRequest
0 голосов
/ 20 ноября 2018

Как я уже сказал в заголовке, у меня есть большой проект, который построен с использованием MVC и шаблона хранилища сервисов.Как это работает сейчас: в репозитории у нас есть запросы (статические репозитории), а в сервисе у нас есть бизнес-логика.Поскольку мы также хотим начать проводить модульное тестирование, после нескольких обсуждений высшее руководство решило, что нам следует перейти на CQS и DDD (у нас много проектов и нам нужно сохранить ту же структуру), но не уверены, с чего начать.

Проблема в том, что наши сервисы стали достаточно большими с тысячами строк кода и некоторыми методами с сотнями строк.

Типичный метод выглядит примерно так:

public void DoSomething(CreateDTO model)
    {
        var entity1 = _entity1Repository.Query();
        DoSomethingWithEntity1(entity1);

        DoACheck();

        if (entity1 == null)
        {
            //do some other stuff as well
            var entity2 = _entity2Repository.Query();
            DoSomethingWithEntity2(entity2);
        }
        else
        {
            //do some other stuff as well
            var entity3 = _entity3Repository.Query();
            DoSomethingWithEntity3(entity3);
        }            

        //do some other stuff as well
        var entity4 = _entity4Repository.Query();
        DoSomethingWithEntity4(entity4);
    }

Как вы можете видеть, мы вызываем несколько хранилищ в одном методе, и иногда это запрос, иногда это команда.Иногда у нас есть бизнес-логика, которая решает, что будет дальше.Если мы разделим запросы и команды, куда мы поместим логику?Должны ли мы сохранить Сервис для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...