45 lines
2.4 KiB
Markdown
45 lines
2.4 KiB
Markdown
# Технологический стек
|
|
|
|
## Стек по умолчанию
|
|
|
|
| Компонент | Технология | Версия | Примечание |
|
|
|-----------|-----------|--------|------------|
|
|
| Язык | Python | 3.12+ | |
|
|
| Фреймворк | FastAPI | 0.115+ | async, OpenAPI |
|
|
| ORM | SQLAlchemy | 2.0+ | async |
|
|
| Валидация | Pydantic | 2.x | v2 синтаксис |
|
|
| База данных (dev) | SQLite | — | через aiosqlite |
|
|
| База данных (prod) | PostgreSQL | 14+ | через asyncpg |
|
|
| Миграции | Alembic | 1.14+ | |
|
|
| Аутентификация | JWT + bcrypt | — | passlib |
|
|
| Фронтенд | React + Vite + TS | 18/5/5 | |
|
|
| Стили | Tailwind CSS | 3.4+ | |
|
|
| PWA | vite-plugin-pwa | 0.20+ | |
|
|
| Тесты | pytest | 8+ | asyncio_mode=auto |
|
|
| Линтер | ruff | | |
|
|
| Форматтер | ruff format | | line-length=88 |
|
|
|
|
## Опциональные компоненты
|
|
|
|
| Компонент | Когда добавлять | Альтернативы |
|
|
|-----------|----------------|--------------|
|
|
| **Celery** + Redis | Для фоновых задач (AI, email, backup) | Прямой вызов в dev |
|
|
| **PostgreSQL** | Для production | SQLite в dev |
|
|
| **AI providers** | Если нужен AI-анализ | Yandex GPT, GigaChat, OpenAI |
|
|
| **OAuth2** | Если нужен вход через соцсети | Яндекс, Google, GitHub |
|
|
| **SMTP** | Если нужны email-уведомления | |
|
|
| **Docker** | Для воспроизводимого деплоя | |
|
|
| **Prometheus + Grafana** | Для мониторинга в prod | |
|
|
| **System Agents** | Для саморазвития проекта | 4 ядерных, остальные по необходимости |
|
|
|
|
## [ASK] Выбор стека
|
|
|
|
Перед началом проекта ответьте на вопросы:
|
|
|
|
1. **Будет ли проект в production?** Если да → PostgreSQL + мониторинг
|
|
2. **Нужны ли фоновые задачи?** Если да → Celery (или прямой вызов на старте)
|
|
3. **Нужен ли AI?** Если да → FallbackChain с 2+ провайдерами
|
|
4. **Нужен ли фронтенд?** Если да → React/Vite/Tailwind
|
|
5. **Нужна ли PWA?** Если да → vite-plugin-pwa + Service Worker
|
|
6. **Нужны ли агенты?** Если да → 4 ядерных с первого коммита
|