Я читал Эванса, Нильссона и Маккарти, среди прочих, и понимаю концепции и рассуждения, лежащие в основе дизайна, ориентированного на предметную область; однако мне трудно собрать все это вместе в реальном -мировом приложении. Отсутствие полных примеров заставило меня почесать голову. Я нашел много фреймворков и простых примеров, но пока ничего, что действительно демонстрирует, как создать реальное бизнес-приложение в соответствии с DDD.
Используя в качестве примера типичную систему управления заказами, возьмем случай отмены заказа. В моем дизайне я вижу OrderCancellationService с методом CancelOrder, который принимает заказ #и причину в качестве параметров. Затем он должен выполнить следующие «шаги»:
Конечно, все это должно происходить в транзакции, и ни одна из операций не должна выполняться независимо. Я имею в виду, что я должен отменить транзакцию по кредитной карте, если отменю заказ, я не могу отменить и не выполнить этот шаг. Это, имхо,предлагает лучшую инкапсуляцию, но я не хочу иметь зависимость от CreditCardService в моем объекте домена (Order ), поэтому похоже, что это ответственность службы домена.
Я ищу кого-то, кто покажет мне примеры кода, как это может/должно быть "собрано". Мыслительный -процесс, лежащий в основе кода, поможет мне соединить все точки для себя. Спасибо!