Вы когда-нибудь обнаруживали в процессе разработки Vibe Coding, что код, созданный ИИ, полон логических дыр, заставляя вас сомневаться в своей жизни, пока вы его исправляете?
В традиционной разработке Spec — это справедливость. Но при сотрудничестве с ИИ мы больше похожи на «режиссеров».
Чтобы заставить этого талантливого, но иногда «сумасшедшего» актера ИИ устроить хорошее шоу, вам нужны два мощных инструмента: EARS (Логика сценария) и BDD (Кадры приемки).
EARS: Превращение требований в «Логические блоки»
Вы, должно быть, встречали такого рода PM, пишущих требования типа: «Система должна быть проще в использовании», «Скорость обработки должна быть высокой». Это катастрофа при написании кода.
EARS (Easy Approach to Requirements Syntax) проще говоря, это преобразование этих «расплывчатых прилагательных» в «точные инструкции».
EARS похож на Prompt Engineering высшего уровня, заставляющий вас говорить закрытой логикой. 5 основных моделей предложений позволяют вам «блокировать» границы требований в любое время:
| Тип | Описание |
|---|---|
| Ubiquitous (Все вездесущий) | Система должна... (Как дыхание, должно соблюдаться всегда). |
| Event-driven (Управляемый событиями) | Когда [происходит событие], система должна.... |
| Unwanted Behavior (Нежелательное поведение) | Если [случается что-то плохое], система должна... (Это душа обработки ошибок). |
| State-driven (Управляемый состоянием) | Пока [в определенном состоянии], система должна.... |
| Optional Feature (Дополнительная функция) | Где [функция включена], система должна.... |
EARS помогает вам установить строгие правила
Делая логически невозможным для ИИ «нести чушь с серьезным лицом».
BDD: Превращение тестов в «Сценарии фильмов»
Если EARS — это строгий контракт, то BDD (Behavior Driven Development) — это «история во плоти». Он тестирует не a == b, он тестирует «то, что пользователь чувствует, что произошло».
Синтаксис, используемый BDD, называется Gherkin (Соленый огурец, должен быть хрустящим и освежающим!), и основная трилогия выглядит следующим образом:
| Синтаксис | Описание |
|---|---|
| 🎬 Given (Фон) | Настройка сцены перед съемкой (например: наличие 100 долларов в кармане). |
| ⚡ When (Действие) | Момент, когда режиссер кричит Action (например: заказал острый кальмар). |
| ✅ Then (Результат) | Конец, который видит аудитория (например: получен ароматный кальмар, в кошельке на 60 долларов меньше). |
С помощью этого метода «сосказывания историй» даже неинженеры могут общаться с нами, и ИИ также может понять ваше истинное намерение через эти «реальные примеры».
В чем разница между EARS vs BDD?
Эти двое выполняют свои обязанности, и их объединение поистине «непобедимо».
| Особенность | EARS (Синтаксис требований) | BDD (Управляемый поведением) |
|---|---|---|
| Основной дух | Точное определение (Устранение двусмысленности) | Консенсус и верификация (Рассказывание историй) |
| Как писать… | Юридические положения | Сценарии фильмов |
| Основная аудитория | PM, Архитектор, Создатель правил | Инженер, QA, Ассистент ИИ |
| Решенная проблема | «То, что ты сделал, это не то, что я думал!» | «Логика верна, но она непригодна для использования!» |
Проще говоря: EARS помогает вам установить правила, BDD помогает вам проверить результаты.
Продвинутое применение EARS: Vibe Coding в действии
Мы напрямую вставляем правила EARS и сценарии BDD в Prompt для разработки ИИ.
Вы можете попробовать дать инструкции, подобные этим, при разработке «Списания с электронного кошелька»:
# Задача: Пожалуйста, помогите мне реализовать API списания
## Логика EARS (Пожалуйста, строго соблюдайте):
- [Event-driven]: Когда получен запрос, баланс должен быть проверен.
- [Unwanted]: Если баланс недостаточен, вернуть код ошибки 400 'INSUFFICIENT_FUNDS'.
- [State-driven]: Пока кошелек находится в состоянии 'Frozen', отклонять все списания.
## Сценарий приемки BDD (Для тестирования Jest):
Scenario: Списание не удалось из-за недостатка средств
Given Баланс пользователя составляет 50 долларов
When Получен запрос на списание 100 долларов
Then API должен вернуть HTTP 400
And Код ошибки должен быть 'INSUFFICIENT_FUNDS'
Попробуйте бросить это ИИ, и сгенерированный Code не отклонится слишком далеко от цели!
Заключение
Будь то в повседневной разработке или Vibe Coding, EARS и BDD являются артефактами для повышения эффективности.
EARS помогает вам установить строгие правила, BDD помогает вам подтвердить результаты игры.