--- title: Структура проекта --- # Структура проекта Раздел описывает базовую структуру проекта и принципы организации модулей на уровне папок и файлов. ## Базовая структура проекта **Хорошо** ```text src/ ├── app/ # Инициализация приложения, роутинг, провайдеры │ ├── config/ # Конфигурации и константы уровня приложения │ ├── providers/ # Провайдеры и обёртки приложения │ ├── routing/ # Конфигурация маршрутов │ └── index.ts # Публичный API слоя ├── screens/ # Экраны приложения │ └── Profile/ # Экран профиля │ └── ... # ui/model/index.ts ├── layouts/ # Общие шаблоны и каркасы страниц │ └── MainLayout/ # Основной layout │ └── ... # ui/index.ts ├── widgets/ # Крупные блоки интерфейса │ └── Header/ # Виджет шапки │ └── ... # ui/index.ts ├── features/ # Пользовательские сценарии │ └── auth-by-email/ # Авторизация по email │ └── ... # ui/model/api/index.ts ├── entities/ # Бизнес-сущности │ └── user/ # Сущность пользователя │ └── ... # ui/model/api/lib/index.ts └── shared/ # Общие ресурсы проекта ├── ui/ # Базовые UI-компоненты ├── lib/ # Утилиты и хелперы ├── services/ # Общие сервисы и клиенты ├── config/ # Общие конфигурации ├── styles/ # Глобальные стили и токены └── assets/ # Ресурсы ├── images/ # Изображения ├── icons/ # Иконки ├── fonts/ # Шрифты └── video/ # Видео ``` **Плохо** ```text // Плохо: слои смешаны, нет понятных границ и публичного API. src/ ├── components/ ├── api/ ├── styles/ └── user.ts ``` ## Правила организации - Каждый слой и модуль хранится в собственной папке. - Внутренние реализации разделяются на `ui`, `model`, `lib`, `api`. - Публичный API модуля объявляется в `index.ts`. - Внутренние файлы не импортируются напрямую извне. - Не смешивать ответственность разных слоёв в одном модуле.