Platform
    • FSD Layers
    • Import Boundaries
    • Entity Structure
    • Widget Structure
    • Project Structure
    • Shared Patterns
Projects
  • API Connections & Tools
  1. Documentation
  2. File Structure

Ограничения модулей и слоев

Строгая изоляция логики и UI через слои для обеспечения предсказуемой разработки и отсутствия побочных эффектов.

01Ограничения слоев

Ограничения модулей

Максимум 3 файла в корне модели. Обязательные index.ts и types.ts для всех сегментов.

index.ts
types.ts

Структура подпапок

config
schema
types
api
converters

Соглашение об именовании

^[a-z0-9-]+\.(config|types|schema|converters|service)\.ts$

Контроль импортов
Разрешенный импорт
import-governance.ts
1import { useAuthStore } from "@/entities/session"; // OK: feature -> entity 2import { Button } from "@/shared/ui"; // OK: feature -> shared
Запрещенное нарушение
import-governance.ts
1import { logoutFeature } from "@/features/auth"; // ERROR: entity -> feature (LAYER VIOLATION)

02Семантические конвертеры

Слой трансформации, гарантирующий, что UI получает точные, готовые к отрисовке структуры данных.

RAW DTO
LOCAL ENTITY
Маппинг сущностей
Выравнивание DTO

03Детерминированная структура дерева

Срез сущности (Entity)

src/entities/invoice/
structure-tree.txt
1├── api/ # API сервисы (RTK Query) 2├── types/ # Структуры данных 3│ ├── index.ts 4│ ├── invoice.interface.ts 5│ └── invoice.types.ts 6├── constants/ # Списки, маппинги, значения по умолчанию 7├── converters/ # Трансформации данных 8├── handlers/ # Бизнес-логика и валидация 9├── mock/ # Тестовые данные 10├── ui/ # (Опционально) Карточки, элементы списка 11└── index.ts # Публичный API

Срез виджета (Widget)

src/widgets/accommodation-edit/
structure-tree.txt
1├── model/ # Логика и состояние виджета 2│ ├── config/ # Конфигурации форм/колонок 3│ ├── schema/ # Схемы валидации (Zod) 4│ ├── types/ # Локальные типы 5│ └── index.ts 6├── ui/ # Внутренние компоненты отображения 7│ ├── general-info/ 8│ └── rooms/ 9├── accommodation-edit.tsx # Основной компонент 10└── index.ts # Публичный API