~/VibeHandbook
PDF бесплатно

Глава 08 · 01

Давайте контекст прежде задачи

AI не видит ваш проект так, как видите вы. Он не знает версию вашего фреймворка, структуру файлов или соглашения, которые вы уже установили. Когда вы это пропускаете, он гадает — и гадает плохо. Хуже того, гадает уверенно, поэтому вывод выглядит правдоподобно ровно до того момента, как столкнётся с вашей реальной кодовой базой.

Сравните эти два промпта для одного и того же запроса.

Добавь функцию для валидации email.
Это backend на TypeScript, использующий Express и Zod для валидации.
Мы уже валидируем входные данные схемами Zod в src/schemas/.
Добавь схему валидации email в этом же стиле. Email должны быть
в нижнем регистре, не длиннее 254 символов, и отвергать одноразовые
домены из существующего списка BLOCKED_DOMAINS в src/config.ts.

Первый промпт порождает обобщённый код, который может использовать нежелательный для вас regex, в стиле, не совпадающем с вашей кодовой базой. Второй порождает код, который можно вставить как есть. Правило: указывайте стек, соглашения и существующие части, которые AI должен переиспользовать.

Хороший промпт складывает эти части по порядку снизу вверх — контекст в основании, сам запрос ближе к вершине:

        ┌──────────────────────────────┐
        │   ПРИМЕРЫ                    │  один вход → выход
        ├──────────────────────────────┤
        │   ОГРАНИЧЕНИЯ                │  чего НЕ делать
        ├──────────────────────────────┤
        │   КРАЙНИЕ СЛУЧАИ             │  пусто, неверно, ошибки
        ├──────────────────────────────┤
        │   ВХОД / ВЫХОД               │  типы и формы
        ├──────────────────────────────┤
        │   ЦЕЛЬ                       │  одна ясная задача
        ├──────────────────────────────┤
        │   КОНТЕКСТ                   │  стек, файлы, паттерны
        └──────────────────────────────┘
              сначала фундамент ▲

Полезный мысленный чек-лист перед тем, как нажать enter: язык и фреймворк (с версией, если она важна), относящиеся к делу файлы или модули, паттерны, уже принятые в проекте, и библиотеки, которые AI стоит предпочесть или избегать. Не нужны все четыре каждый раз — но если ответ изменился бы в зависимости от одного из них, назовите его. Если сомневаетесь, вставьте реальную сигнатуру, тип или конфиг, под который новый код должен подойти. Несколько строк существующего кода научат AI вашим соглашениям лучше, чем целый абзац описания.

Хотите офлайн-версию?

Скачайте всю книгу в PDF или EPUB — бесплатно.