наконец решил перейти к практике. Вопрос по чистой архитектуре:
Как спроектировать слои, когда мой низкоуровневый компонент должен вызвать низкоуровневый компонент?
Вот случай: моя вьюха (на Vue) хочет открывать модальные окна. Она может это делать средствами фреймворка электрон, а может как то иначе. Vue — является низкоуровневым компонентом. «Открыть модальное окно» — не выглядит юзкейсом в его классическом понимании, т.к. юзкейс — это про бизнес-логику и данные. То есть, вызывать открытие модального окна из юзкейса выглядит неправильным. Электрон, и его абстрактный «WindowsManager» — тоже низкоуровневый компонент. Так вот как и откуда правильно обратится к WindowsManager из вьюхи? Какой должен быть поток управления?
Возможно, я много где ошибся с терминами, и прошу меня направить на путь истинный
слои это ложь
Не эксперт, но пришел к выводу что натягивать всякие архитектурные паттерны и подходы на Vue - плохая идея
Начни с организации проекта. Вот +- чистая, ui разбит по областям, инфраструктура определяет и расширяет используемый интерфейс vue и других библиотек. Коллекции собираются сканом директорий(чаще всего), где тип кодируется в имени файла и структура содержания поддерживается инфраструктурными типами.
жестко) а что DI-итя тут? и что описано в app/domain? этот код как то шерится?
я попробовал "@wessberg/di-compiler" для app, с последующем доступом через локатор в роутере(1 в 1 как на бэке), но вуй-кли очень не адекватно себя ведет если ts не transpile-only, и я скорее всего откажусь от этого в дальнейшем
app/domain - нет такого. core/domain - инфраструктурные типы для domain(типа базовых Entity/VO). domain пока ничего, в этом приложении нет того что туда можно поместить))
Обсуждают сегодня