Настройка проекта
Перейти к разделу
Пусть AI займётся скаффолдингом
Настройка проекта — это то, где AI раскрывается в полную силу. Команды хорошо задокументированы, паттерны устоялись, двусмысленности почти нет. Для PraktickAI весь начальный setup — и frontend, и backend — был сделан Claude Code за одну сессию. Это заняло около 20 минут.
Хитрость в том, чтобы дать AI чёткие инструкции о своих предпочтениях. TypeScript или JavaScript? App Router или Pages Router? Poetry или uv для зависимостей Python? Если не указать — AI выберет за вас, и это может не совпасть с вашими предпочтениями.
Frontend: Next.js с TypeScript
claude "Create a Next.js project with the App Router, TypeScript, and Tailwind CSS.
Use the latest version. Include ESLint config.
Set up the project structure for a bilingual site (cs/en)
using next-intl for internationalization.
The source directory should be src/."AI запустит npx create-next-app, установит зависимости, настроит структуру директорий, сконфигурирует next-intl и создаст начальный layout. Вы проверяете результат. Действует правило 80/20: AI делает 80% правильно, а вы направляете оставшиеся 20% — предпочтительную структуру папок или соглашения об именовании.
Всегда говорите AI использовать последнюю версию фреймворков. У AI есть дата отсечения обучающих данных, поэтому он может по умолчанию использовать устаревшие паттерны. Фраза «используй последнюю версию» заставляет его проверить актуальную документацию и применять современные API.
Backend: Django с Django Ninja
claude "Create a Django project called 'praktickai-backend'.
Use uv for dependency management.
Add Django Ninja for the REST API.
Use django-environ for settings.
Set up a custom User model with email as the username field.
Structure apps under an 'apps/' directory.
Include: accounts, courses, payments apps.
Add a Dockerfile and docker-compose.yml with PostgreSQL."Этот единственный промпт генерирует всю структуру backend: конфиг проекта, кастомную модель пользователя, три Django-приложения, Docker-настройку и управление зависимостями. AI знает лучшие практики Django (кастомная модель пользователя с самого начала, директория apps, настройки через переменные окружения), потому что видел тысячи Django-проектов.
Настройка git: основа всего
Перед написанием любого кода настройте git. Это обязательно. AI будет вносить много изменений, и вам нужна возможность просматривать их, откатывать ошибки и отслеживать, что изменилось и когда.
claude "Initialize git for this project.
Create a comprehensive .gitignore for:
- Python (venv, __pycache__, .env)
- Node.js (node_modules, .next)
- IDE files (.vscode, .idea)
- OS files (.DS_Store)
Make the initial commit with all scaffolded files."После того как AI вносит изменения, всегда проверяйте git diff перед тем как двигаться дальше. Запустите «git diff» или воспользуйтесь просмотром diff в вашей IDE. Это ваша страховочная сеть. Если AI сгенерировал что-то неправильно — вы поймаете это сразу. Относитесь к этому как к код-ревью, только «джуниор» — это AI.
Правило 80/20 при скаффолдинге с AI
AI правильно выстраивает структуру, но детали нуждаются в доработке. Для PraktickAI AI правильно настроил Django-проект со всеми тремя приложениями, но исходный settings.py требовал корректировок: ALLOWED_HOSTS был слишком разрешительным, конфигурация базы данных не использовала переменные окружения должным образом, и CORS не был настроен.
Это нормально. Не боритесь с этим. Проверьте, что сгенерировал AI, отметьте, что нужно исправить, и попросите AI исправить. Итерационный цикл «сгенерировать, проверить, уточнить» — это основной рабочий процесс при разработке с AI.
claude "Review the Django settings.py you just created.
Fix these issues:
1. Use django-environ for ALL config (DATABASE_URL, SECRET_KEY, DEBUG)
2. ALLOWED_HOSTS should come from env var, not be hardcoded
3. Add CORS configuration with django-cors-headers
4. Add CSRF_TRUSTED_ORIGINS
5. SECRET_KEY must crash on startup if not set in production"Локальное окружение для разработки
Для PraktickAI локальный dev-setup прост: PostgreSQL работает в Docker, Django — нативно с uv, а Next.js — через npm. AI настроил всё это одним промптом.
# Start the database
docker compose up -d db
# Backend (in one terminal)
uv run python manage.py migrate
uv run python manage.py runserver 0.0.0.0:8008
# Frontend (in another terminal)
npm install
npm run devКлючевое — немедленно убедиться, что всё работает. Не переходите к созданию функций, пока скаффолдинг не будет надёжным: frontend загружается, backend отвечает, база данных принимает подключения, и миграции выполняются чисто.
Собирайте и запускайте проект после КАЖДОГО значительного изменения. Это самая важная привычка, которую вы можете выработать. AI-сгенерированный код, который никогда не выполнялся, — это ненадёжный код. Шаг сборки — ваш первый рубеж защиты.
AI пишет начальные модели
Как только скаффолдинг заработал, позвольте AI создать начальные модели данных. Опишите данные на простом языке — AI переведёт это в Django-модели с правильными типами полей, связями и индексами.
claude "Create Django models for the courses app:
- Course: slug (unique), difficulty (beginner/intermediate/advanced),
estimated_hours, price_czk (nullable, null=free), price_eur (nullable),
is_published, created/updated timestamps
- Lesson: belongs to a Course, slug (unique within course),
order (integer), is_free_preview (boolean)
- Enrollment: links User to Course, enrolled_at timestamp,
unique together on user+course
Create and run the migration."Выберите frontend или backend проект и попросите AI создать его с нуля. Используйте один из этих промптов: Для Next.js frontend: claude "Create a Next.js project with TypeScript, Tailwind CSS, and ESLint. Set up a clean directory structure with src/ and a basic home page." Для Django backend: claude "Create a Django project with uv, django-environ for settings, and a custom User model. Include a Dockerfile and docker-compose.yml with PostgreSQL." Когда AI закончит, запустите проект и убедитесь, что он работает. Проверьте git diff, чтобы увидеть всё, что создал AI.
Подсказка
Если что-то не работает с первого запуска — не исправляйте это вручную. Сообщите AI об ошибке и пусть он исправит. Это формирует привычку использовать AI как основной инструмент, а не просто помощника.
После скаффолдинга проверьте сгенерированный код на наличие типичных проблем: 1. Есть ли захардкоженные секреты? (SECRET_KEY, пароли базы данных) 2. Достаточно ли полный .gitignore? 3. Используются ли переменные окружения для конфигурации? 4. Соответствует ли Dockerfile лучшим практикам? (многостадийная сборка, непривилегированный пользователь) Для каждой найденной проблемы дайте AI конкретную инструкцию по исправлению. Отслеживайте, сколько итераций потребовалось для получения чистой настройки.
Подсказка
AI часто захардкоживает SECRET_KEY в settings.py для удобства. Это нормально для локальной разработки, но опасно в production. Убедитесь, что все секреты берутся из переменных окружения.
После скаффолдинга настройте dev-окружение с помощью AI: 1. Попросите AI добавить pre-commit хук для линтинга и форматирования 2. Попросите AI создать docker-compose.yml для локальной разработки (приложение + база данных) 3. Попросите AI добавить Makefile (или скрипты в package.json) с общими командами: dev, test, lint, build 4. Попросите AI настроить переменные окружения с файлом .env.example 5. Протестируйте всё: запустите dev-сервер, запустите тесты, запустите линтер Проверьте: может ли новый разработчик склонировать репозиторий и начать работу за 5 минут?
Подсказка
Признак хорошо настроенного проекта — когда «git clone && make dev» даёт рабочее dev-окружение. AI отлично генерирует шаблонную конфигурацию — пусть занимается скучными частями, пока вы проверяете корректность.
- AI отлично справляется со скаффолдингом — настройка проекта занимает минуты, а не часы
- Конкретно указывайте предпочтения (TypeScript vs JS, uv vs poetry), иначе AI выберет за вас
- Правило 80/20: AI правильно строит структуру, вы уточняете детали
- Всегда проверяйте, что скаффолдинг работает (сборка, запуск, подключение), прежде чем двигаться дальше
- Git обязателен — вам нужно отслеживать, просматривать и откатывать изменения AI
- Собирайте после каждого изменения — непроверенный код AI — ненадёжный код
В следующем уроке мы погружаемся в создание frontend — техника, которая даёт вам явное преимущество. Откройте полный курс и продолжайте прямо сейчас.
2/12 завершено — продолжайте!