Мои заметки о технологиях и жизни

Часть 4: ЗАДАЧА (Task) и Итеративная Магия – Оживляем Код и Проект с ИИ

Итак, у нас есть План (PRD), определяющий "что" и "зачем", и детальный Чертеж (Blueprint), отвечающий на вопрос "как". Оба документа пронизаны уникальными ID, которые ИИ помогал нам создавать и связывать. Настало время самого захватывающего этапа – превращения нашего Blueprint в реальный работающий код с помощью ИИ! Но прежде чем мы бросимся генерировать код, давайте поговорим о "правилах игры" на этом этапе.

4.1. "Контракты" на Каждом Шаге: Гарантия Соответствия

Прежде чем мы начнем "резать" наш Blueprint на задачи для ИИ, важно понять одну ключевую концепцию – идею "контракта" между этапами. Представьте, что каждый созданный нами документ – это не просто описание, а своего рода формальное соглашение:

  1. PRD – это "контракт" для Blueprint: Наш Чертеж (Blueprint) обязан технически реализовать все то, что было задумано в Плане (PRD). Если в PRD есть фича `PRD-FEAT-002` (Создание события), то в Blueprint обязательно должны быть соответствующие технические решения (API, экран, база данных и т.д.). Наша система ID помогает это проверить: мы можем отследить, что для каждого важного `PRD-XXX` есть соответствующие `BP-XXX` в Blueprint.
  2. Blueprint – это "контракт" для Задач (Tasks): А вот теперь каждая Задача на написание кода, которую мы будем ставить ИИ, обязана точно следовать спецификациям, описанным в Blueprint. Если в Blueprint для API (в нашем "Справочнике API" `BP-API-DIRECTORY-001`) сказано, что эндпоинт `BP-API-ENDPOINT-002` должен принимать определенные данные, то код, написанный по Задаче для этого API, должен делать именно это, и ничего другого.

Эти "контракты" нужны для согласованности: мы строим именно то, что задумали, шаг за шагом. Они снижают риск ошибок и недопонимания, особенно при работе с ИИ. Наша система ID (`PRD-XXX`, `BP-XXX`, и скоро появятся `TASK-XXX`) помогает делать эти контракты явными и отслеживаемыми.

4.2. От Blueprint к Задаче (Task): Режем Слона на Бифштексы для ИИ

Наш Blueprint содержит подробное описание того, как должна работать система. Но даже самый детальный Blueprint обычно слишком велик, чтобы просто сказать ИИ: "Сделай все по этому чертежу!". Нам нужно разбить большие элементы Blueprint на маленькие, конкретные, выполнимые Задачи (Tasks). Это как нарезать большого слона на маленькие бифштексы, которые легко "переварить".

Как разбивать Blueprint на Задачи?

ИИ может сам помочь вам в этой декомпозиции, а также вести учет этих задач в структурированном виде!

Пример декомпозиции API для создания события (и его сохранение в JSON):

Важно понимать, что эти определенные нами Задачи (`TASK-XXX`) – это не просто идеи для следующего промта к ИИ. Каждую из них ИИ зафиксировал (в нашем примере – в JSON-файлах). Это позволяет вам не потеряться в потоке работы и видеть общую картину прогресса, просто спросив ИИ: "Какие задачи у нас сейчас по API создания события?" или "Покажи все задачи со статусом 'todo'".

4.3. Искусство Промптинга для Задач: Даем ИИ Четкие Инструкции на Кодирование

Итак, у нас есть маленькие Задачи (`TASK-XXX`), описанные и сохраненные (например, в tasks.json, который ведет ИИ). Как правильно попросить ИИ написать для них код? Качество промта – ключ к успеху!

Что должно быть в хорошем промте для Задачи:

  1. Четкая Цель: Опишите, что конкретно нужно сделать, ссылаясь на суть Задачи (например, "Реализуй сохранение данных о событии в базу"). ИИ, помня контекст и имея доступ к tasks.json, свяжет это с нужной `TASK-XXX`.
  2. Контекст: Кратко напомните, к чему относится эта Задача (ИИ сам найдет детали по `TASK-ID`, но человеческое напоминание о фиче PRD или элементе Blueprint может помочь).
  3. Технологии: Язык, фреймворк (ИИ должен знать это из `BP-CODESTD-XXX` или `BP-ARCHPRINCIPLE-XXX`).
  4. Входные/Выходные данные: Что функция принимает, что возвращает?
  5. Требования и Ограничения: Особые условия, обработка ошибок, стиль кода.
  6. Комментарии/Документация: Просите ИИ пояснять код.

Пример: Хороший vs. Плохой Промт для Задачи "Реализовать сохранение данных о событии в БД" (наша `TASK-003`)

4.4. Микро-Итерации: "Доводка" Кода с ИИ Сразу После Генерации

ИИ сгенерировал код по вашему промту для Задачи `TASK-XXX`. Отлично! Но это еще не конец. Теперь начинается этап микро-итераций – быстрых циклов обратной связи с ИИ для улучшения только что созданного кода.

Эти микро-итерации позволяют "довести до ума" код для каждой Задачи сразу, повышая его качество и надежность.

4.5. Большая Петля Обратной Связи: Поддерживаем Blueprint "Живым"

Разработка – живой процесс. Иногда при реализации Задачи вы (или ИИ) можете обнаружить что-то новое или столкнуться с проблемой, которая требует изменения в вашем первоначальном плане – в Blueprint. Это нормально! Важно иметь механизм обратной связи от Задачи к Blueprint.

Как это работает?

Отслеживание Реализации: Как Понять, что Blueprint "Выполнен"?

Еще один важный аспект "живого" Blueprint – это отслеживание прогресса. Как понять, какие части нашего Чертежа уже реализованы?

Таким образом, ваш Blueprint становится не только планом, но и отражением текущего состояния разработки. Иногда обратная связь может идти и к PRD, если на этапе Blueprint или реализации выясняется, что первоначальные требования нереализуемы или нелогичны. Эта система Задач и обратной связи (как микро-, так и макро-) позволяет вам гибко управлять процессом разработки с ИИ, постоянно улучшать код и поддерживать ваш проектный план в актуальном и "живом" состоянии.