/
Вопросы и ответы
/
Вайбкодинг
/

Как выстроить рабочий процесс вайбкодинга на реальном проекте?

Как выстроить рабочий процесс вайбкодинга на реальном проекте?

3 месяца назад

Никита Вихров

Ответы

0

Как выстроить рабочий процесс вайбкодинга на реальном проекте

Вайбкодинг на пет-проекте и вайбкодинг в продакшн — разные вещи. Вот конкретный процесс который не сломается через неделю.

Шаг 1: rules-файл до первой строки кода

Создайте .cursorrules в корне проекта:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Стек
- Python 3.11, FastAPI 0.104, SQLAlchemy 2.0 async
- PostgreSQL, Alembic для миграций
- Pytest + pytest-asyncio для тестов
- Pydantic v2 для валидации

# Соглашения по коду
- async/await везде где есть I/O
- типизация обязательна, mypy в strict режиме
- исключения через кастомные классы из app/exceptions.py
- логирование через structlog, print() запрещён
- переменные, комментарии, docstring — на английском

# Структура
- роутеры в app/routers/, один файл — один домен
- бизнес-логика в app/services/, не в роутерах
- модели SQLAlchemy в app/models/
- Pydantic-схемы в app/schemas/

# Запреты
- не хардкодить конфиг, только os.getenv()
- не смешивать бизнес-логику с HTTP-слоем
- не использовать select * в запросах

Этот файл — постоянный системный промпт. Cursor подставляет его в каждый запрос автоматически.

Шаг 2: архитектура до кода

Не просите сразу писать код. Сначала:

1
2
3
4
5
6
7
8
9
10
11
12
я делаю API для таск-менеджера.
стек: Python 3.11, FastAPI, PostgreSQL, Redis.
пользователи могут создавать проекты, добавлять задачи,
назначать исполнителей, получать уведомления.

помоги спроектировать:
1. структуру папок
2. модели базы данных (таблицы и связи)
3. список API endpoints
4. какие части стоит кэшировать в Redis

дай схему и объясни решения

Потратьте 30 минут на архитектуру. Переписывать её потом — дорого даже с ИИ.

Шаг 3: атомарные задачи

Декомпозируйте на минимальные шаги. Каждый шаг — отдельный диалог:

1
2
3
4
5
6
7
8
9
10
# Вместо одного огромного промпта:
"сделай авторизацию"

# Разбейте:
1. "создай модель User: id, email, hashed_password, is_active, created_at"
2. "напиши UserService.create() и UserService.get_by_email()"
3. "напиши POST /auth/register с валидацией через Pydantic"
4. "напиши POST /auth/login, возвращает JWT через python-jose"
5. "напиши depends get_current_user для проверки JWT"
6. "напиши тесты для всех endpoint'ов"

Каждый шаг — проверяемый результат. Сломался шаг 4 — откатили только его.

Шаг 4: git после каждого рабочего шага

1
2
3
4
5
6
7
8
9
# После каждого шага:
git add .
git commit -m "feat: add User model and UserService"

git add .
git commit -m "feat: add POST /auth/register endpoint"

git add .
git commit -m "feat: add JWT authentication"

Если модель сломала что-то:

1
2
3
4
git diff  # посмотреть что изменилось
git checkout -- app/services/auth.py  # откатить один файл
# или
git reset --hard HEAD~1  # откатить последний коммит

Шаг 5: код-ревью перед коммитом

1
2
3
4
5
6
7
8
9
вот мои изменения:

[вывод git diff]

проверь:
- нет ли SQL-инъекций или уязвимостей
- нет ли необработанных исключений
- соответствует ли код rules-файлу
- что я мог забыть

Занимает минуту, часто ловит то что пропустили.

Реальный пример: промпт для endpoint

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
напиши endpoint PATCH /tasks/{task_id} для обновления задачи.

модель Task:
class Task(Base):
    id: int
    title: str
    description: str | None
    status: str  # "todo", "in_progress", "done"
    assignee_id: int | None
    project_id: int
    created_by: int

требования:
- только автор задачи или assignee могут её обновлять
- нельзя менять project_id и created_by
- при смене статуса на "done" записывать completed_at
- возвращать обновлённую задачу в формате TaskResponse
- если задача не найдена — 404
- если нет прав — 403

Это конкретное ТЗ. Модель напишет рабочий код с первого раза.

Рефакторинг с ИИ

Когда файл вырос:

1
2
3
4
5
6
7
8
9
этот сервис разросся до 400 строк, нарушает SRP.
вот код: [код]

покажи план разбивки на модули:
- каждый модуль — одна ответственность
- публичный интерфейс не должен измениться
- не меняй логику, только структуру

сначала только план, код после моего ок

«Сначала только план» — обязательно. Согласуйте структуру до написания кода.

Документация без боли

1
2
3
4
5
напиши docstring для каждой публичной функции в этом файле.
стиль: Google docstring.
включай: описание, Args с типами, Returns, Raises:

[код файла]

И README:

1
2
3
4
напиши README для этого проекта.
разделы: что делает, быстрый старт, переменные окружения, API endpoints.
аудитория: разработчик который видит проект впервые.
добавь примеры curl-запросов для основных endpoints

Когда вайбкодинг замедляет

  • Незнакомый стек — сначала пройдите базовый туториал, потом вайбкодьте. Иначе не сможете проверить что модель написала
  • Нет тестов — без тестов вы не знаете работает ли то что сгенерировала модель
  • Слишком большие задачи — если задача занимает больше одного файла, разбейте её

Если коротко: rules-файл + атомарные задачи + частые коммиты + ревью перед коммитом. Без этой структуры проект за месяц превращается в кашу которую никто не понимает — включая вас.

3 месяца назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845