Você já descobriu durante o processo de desenvolvimento do Vibe Coding que o código produzido pela IA está cheio de brechas lógicas, fazendo você duvidar da sua vida enquanto o conserta?
No desenvolvimento tradicional, Spec é justiça. Mas ao colaborar com a IA, somos mais como “diretores”.
Para fazer aquele ator de IA talentoso, mas ocasionalmente “louco”, dar um bom show, você precisa de duas ferramentas poderosas: EARS (Lógica do Roteiro) e BDD (Fotogramas de Aceitação).
EARS: Transformando Requisitos em “Blocos Lógicos”
Você deve ter conhecido esse tipo de PM, escrevendo requisitos como: “O sistema precisa ser mais fácil de usar”, “A velocidade de processamento precisa ser rápida”. Isso é um desastre ao escrever código.
EARS (Easy Approach to Requirements Syntax) simplificando, é transformar esses “adjetivos vagos” em “instruções precisas”.
EARS é como Prompt Engineering de alto nível, forçando você a falar em lógica fechada. Os 5 principais padrões de frases permitem que você “tranque” os limites dos requisitos a qualquer momento:
| Tipo | Descrição |
|---|---|
| Ubiquitous (Onipresente) | O sistema deve... (Como respirar, deve ser obedecido o tempo todo). |
| Event-driven (Orientado a eventos) | Quando [evento acontece], o sistema deve.... |
| Unwanted Behavior (Comportamento indesejado) | Se [coisa ruim acontecer], o sistema deve... (Esta é a alma do Tratamento de Erros). |
| State-driven (Orientado a estado) | Enquanto [em um estado específico], o sistema deve.... |
| Optional Feature (Recurso opcional) | Onde [o recurso está incluído], o sistema deve.... |
EARS ajuda você a definir regras estritas
Tornando impossível para a IA “falar bobagens com uma cara séria” logicamente.
BDD: Transformando Testes em “Roteiros de Filme”
Se EARS é um contrato rigoroso, então BDD (Behavior Driven Development) é uma “história de carne e osso”. Não testa a == b, testa “o que o usuário sente que aconteceu”.
A sintaxe usada pelo BDD é chamada Gherkin (Picles, deve ser crocante e refrescante!), e a trilogia principal é a seguinte:
| Sintaxe | Descrição |
|---|---|
| 🎬 Given (Fundo) | Definindo a cena antes de filmar (ex: Ter 100 dólares no bolso). |
| ⚡ When (Ação) | O momento em que o diretor grita Ação (ex: Pediu uma lula apimentada). |
| ✅ Then (Resultado) | O final visto pelo público (ex: Recebeu lula perfumada, carteira tem 60 dólares a menos). |
Através deste método de “contação de histórias”, mesmo não engenheiros podem se comunicar conosco, e a IA também pode entender sua verdadeira intenção através desses “exemplos reais”.
Qual é a diferença entre EARS vs BDD?
Esses dois cumprem seus próprios deveres, e combiná-los é verdadeiramente “invencível”.
| Recurso | EARS (Sintaxe de Requisito) | BDD (Orientado ao Comportamento) |
|---|---|---|
| Espírito Central | Definição Precisa (Eliminar Ambiguidade) | Consenso e Verificação (Contação de Histórias) |
| Como escrever… | Cláusulas Legais | Roteiros de Filme |
| Público Principal | PM, Arquiteto, Criador de Regras | Engenheiro, QA, Assistente de IA |
| Ponto de Dor Resolvido | “O que você fez não é o que eu pensei!” | “A lógica está certa, mas é inutilizável!” |
Simplesmente: EARS ajuda você a definir as regras, BDD ajuda você a verificar os resultados.
Aplicação Avançada do EARS: Vibe Coding em Ação
Nós inserimos diretamente as regras EARS e roteiros BDD no Prompt para a IA desenvolver.
Você pode tentar dar instruções como esta ao desenvolver “Dedução de Carteira Eletrônica”:
# Tarefa: Por favor, ajude-me a implementar a API de dedução
## Lógica EARS (Por favor, siga rigorosamente):
- [Event-driven]: Quando uma solicitação é recebida, o saldo deve ser verificado.
- [Unwanted]: Se o saldo for insuficiente, retorne o código de erro 400 'INSUFFICIENT_FUNDS'.
- [State-driven]: Enquanto a carteira estiver no estado 'Frozen', rejeite todas as deduções.
## Roteiro de Aceitação BDD (Para testes Jest):
Scenario: Dedução falhou devido a fundos insuficientes
Given O saldo do usuário é 50 dólares
When Recebido pedido para deduzir 100 dólares
Then A API deve retornar HTTP 400
And O código de erro deve ser 'INSUFFICIENT_FUNDS'
Tente jogar isso para a IA, e o Código gerado não se desviará muito do objetivo!
Conclusão
Seja no desenvolvimento diário ou no Vibe Coding, EARS e BDD são artefatos para melhorar a eficiência.
EARS ajuda você a definir regras estritas, BDD ajuda você a confirmar os resultados da atuação.