This commit is contained in:
2026-01-30 02:02:32 +03:00
parent 06adcca9d9
commit 0bbea95260
9 changed files with 1026 additions and 30 deletions

View File

@@ -0,0 +1,63 @@
---
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`.
- Внутренние файлы не импортируются напрямую извне.
- Не смешивать ответственность разных слоёв в одном модуле.