Задать вопрос
Ответы пользователя по тегу Проектирование программного обеспечения
  • Есть ли смысл применять CQRS/MediatR?

    vhood
    @vhood
    Не забывайте отмечать решения
    Query может использовать отдельную базу данных с денормализацией и индексами под поиск, а Command другую базу данных с нормальными формами и без лишних индексов для ускорения вставки. В случае микросервисной архитектуры это будет 2 отдельных микросервиса, что позволит эффективно всем управлять. Но настроить такую систему сложнее и дольше.

    Независимо от БД и архитектуры, для Query и Command стоит делать разных пользователей в базе данных с разными правами, что только усиливает безопасность.
    Ответ написан
    Комментировать
  • Как решить проблему Rich Model в DDD?

    vhood
    @vhood
    Не забывайте отмечать решения
    бизнес склонен изменять поведение системы
    Хороший архитектор склонен пересматривать архитектуру

    есть модель пользователя, которая включает в себя объект скидки
    Судя по тексту ниже, скидки стоит отделить от пользователей

    подписки находятся в отдельном микросервисе, имеют свою БД и никак не связаны с сущностью пользователь
    Замечательно, значит скидки могут быть в отдельном микросервисе, иметь свою БД и иметь только идентификатор пользователя и идентификатор подписки. Пользователи же, скорее всего, будут в сервисе авторизации
    Ответ написан
    Комментировать
  • Как правильно разделить frontend и backend на проекте с переездом на другой стек?

    vhood
    @vhood
    Не забывайте отмечать решения
    Переписывать лучше постранично, т.е. реализовывать по одной странице на React, подключать на тестовом сервере, тестировать и заливать в прод. Таким образом все будут видеть, что работа идет, а в проекте не будет мешанины.

    Алгоритм постраничного переписывания зависит от того, как сейчас реализовано. Если используется BitrixVue или Inertia, то нужно реализовать новые API на Laravel, иначе можно и старые дергать.

    Выбор подключения react или vue на странице можно разрешить в коде, сами минифицированные скрипты можно пробрасывать, что-бы в одном репозитории не городить весь код.
    Ответ написан
    Комментировать