Featured image of post Что такое EARS и BDD? Spec-Driven Development (SDD), чтобы ИИ мгновенно понимал ваши потребности в Vibe Coding

Что такое EARS и BDD? Spec-Driven Development (SDD), чтобы ИИ мгновенно понимал ваши потребности в Vibe Coding

Все еще изо всех сил пытаетесь общаться с ИИ? Эта статья научит вас, как объединить синтаксис требований EARS и разработку на основе поведения BDD, чтобы создавать 'Строгие промпты', позволяя ИИ точно создавать высококачественный код!

Вы когда-нибудь обнаруживали в процессе разработки 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 помогает вам подтвердить результаты игры.

All rights reserved,未經允許不得隨意轉載
Создано при помощи Hugo
Тема Stack, дизайн Jimmy