Skip to content

Домены и подмодули

🏗️ Уровни фрактальности

Section titled “🏗️ Уровни фрактальности”

1. Модуль (Module) — единица функциональности

Section titled “1. Модуль (Module) — единица функциональности”

Модуль — это группа файлов, реализующих определённую функциональность (например, auth, dashboard, products).

Структура домена

src/
│
└── pages/ # Бизнес-логика (фрактальные домены)
└── cart/ # <your_module> — пример домена
├── index.vue # Компонент страницы
├── rpc.ts # Бизнес-логика модуля
├── model.server.ts # Логика работы с данными (server-only)
├── schema.ts # Drizzle/Zod схема модели
├── composables.ts # Композируемая логика
├── stores.ts # Локальное состояние
├── utils.ts # Хелперы модуля
├── types.ts # TypeScript интерфейсы
├── templates.ts # Шаблоны форм
├── constants.ts # Константы, enum
├── policy.ts # Политики доступа
├── index.ts # Публичный API модуля
├── ui/ # UI компоненты модуля
│ ├── CartWidget.vue
│ ├── CartItem.vue
│ └── CheckoutForm.vue
│
├── _checkout/ # _submodule (не роутит)
│ ├── rpc.ts
│ ├── model.server.ts
│ ├── schema.ts
│ ├── controller.ts
│ ├── utils.ts
│ ├── types.ts
│ ├── constants.ts
│ ├── policy.ts
│ ├── index.ts
│ └── ui/
│ └── PaymentStep.vue
│
└── items/ # submodule (роутит: /cart/items)
├── index.vue
├── rpc.ts
├── model.server.ts
├── schema.ts
├── controller.ts
├── stores.ts
├── utils.ts
├── types.ts
├── constants.ts
├── policy.ts
├── index.ts
└── ui/
└── ItemList.vue

🔄 Взаимодействие между модулями

Section titled “🔄 Взаимодействие между модулями”

→ Контракты файлов — полное описание каждого файла

→ Data Flow — частые вопросы