169 похожих чатов

Привет! Вопрос про архитектуру! В приложении сложный интерфейс, есть много

объектов, которые взаимодействуют друг с другом, их можно скажем перетаскивать, редактировать свойства, есть разные режимы работы, в которых набор действий разный.
В итоге это все сохраняется в vuex. Но, в vuex сейчас код похож немного на лапшу, много if, много похожих по смыслу экшенов с похожим кодом.. Какие есть паттерны проектированяи для таких случаев? Конкретики не прошу, она везде будет разная, но какие есть подходы и приемы, может быть примеры где-то есть 😉 Спасибо!

5 ответов

16 просмотров

>в vuex сейчас код похож немного на лапшу оно и неудивительно, потому что сторы не предназначены для того, чтобы в них хранили бизнес-логику, это просто хранилище и не более того логику нужно разносить по сервисам, а в сторах хранить только то, что является глобальными данными, тогда не будет лапши с ифами

oxid- Автор вопроса
Artyom Tuchkov
>в vuex сейчас код похож немного на лапшу оно и н...

Вопрос то не в этом, а в том как эту логику в тех же сервисах реализовать, потому что если лапша из стора просто переедет в сервис она останется лапшой :)

oxid
Вопрос то не в этом, а в том как эту логику в тех ...

делай как в ddd. к значениям обращайся как к свойству объекта модели данных

Без конкретики сложно что-то предложить. Как минимум - можно посмотреть на паттерн нормализации хранилища - решает проблему работы и изменения вложенных данных (аналогично беку). Возможно, используются популярные плохие-хорошие-практики, например, создаются геттеры на каждый чих и экшены для каждой мутации - можно убрать, будет меньше кода. Можно переехать на pinia - позволит и меньше кода писать, и проще переиспользовать логику между разными модулями, а также использовать модули друг в друге

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Карта сайта