У меня есть философский вопрос о применении DDD для разработки многофункционального приложения с графическим интерфейсом. Как программист, у меня есть опыт в создании DDD и DB-ориентированных систем, поэтому я знаю основы. Сейчас я сталкиваюсь с полной переработкой приложения для крупных торговых точек, и у меня возникла проблема.
Обычно концепция DDD означает «99% логики в домене и 1% логики в GUI»; а логика в GUI - это только проверка. Такой подход хорошо работает, когда у вас есть простые формы, где пользователи могут что-то ввести, а затем нажать «Сохранить», чтобы отправить данные на сервер или что-то в этом роде.
Одной из основных особенностей существующего приложения является его быстрота. Работа на POS означает, что продавец делает все быстро. Бизнес-логика, которой должен следовать POS, очень сложна. Грубо говоря, каждый раз, когда пользователь меняет цену, налоги, скидки и т. Д., Меняются цены, скидки, налоги и т. Д .; так что это своего рода домен, который находится на клиенте.
Технически я, очевидно, могу переместить логику в удаленный домен, который живет на сервере, но это сделает систему очень медленной. Мне нужно будет делать удаленный вызов каждый раз, когда пользователь вносит изменения в пользовательский интерфейс.
Есть ли идеи о том, как сохранить чистоту DDD и в то же время сделать систему быстрой?
Спасибо!
P.S. Единственный способ, который я вижу сейчас, - это использование загружаемой сборки, содержащей домен, но она определенно выглядит как хак ...