Prompt Engineering para Devs: 15 Templates
Prompt ruim gera código lixo. Prompt bom gera código que você quase não precisa mexer. Aqui estão os 15 templates que uso toda semana — testados, não copiados
Como usar esses templates
Prompt Engineering para Devs: 15 Templates. Prompt ruim gera código lixo. Prompt bom gera código que você quase não precisa mexer. Aqui estão os 15 templates que uso toda semana — testados, não copiados de blog.
Passei um tempo acreditando que a qualidade da IA era tudo. Que um modelo melhor resolveria meus problemas automaticamente. Não é verdade. Um prompt bem construído em um modelo mediano bate um prompt vago em um modelo de ponta. Aprendi isso na marra.
Por que prompt engineering importa para devs
Código gerado por IA é tão bom quanto a instrução que você deu. A IA não lê mente — ela preenche lacunas com o mais provável, não com o que você queria. Quando o prompt é vago, ela chuta. Quando é específico, ela entrega.
A diferença prática: um prompt ruim gera código que você passa 30 minutos ajustando. Um prompt bom gera código que você revisa em 5 minutos e aceita com uma ou duas mudanças.
Anatomia de um bom prompt de código
Contexto, restrição, formato de saída
Todo bom prompt de código tem três partes: contexto (o que existe e o que você está fazendo), restrição (o que não pode mudar, o que deve usar) e formato de saída (como você quer receber o resultado).
# Estrutura de um bom prompt
## Contexto
"Estou trabalhando em [tipo de projeto]. Tenho [o que já existe]."
## Restrição
"Use [tecnologia/padrão X]. Não use [Y]. Mantenha [Z]."
## Formato de saída
"Retorne [apenas o código / código + explicação / só a função / arquivo completo]."
# Exemplo ruim
"Cria um hook de fetch"
# Exemplo bom
"Cria um custom hook React chamado useProducts que busca dados
de /api/products, usa SWR para cache, retorna { data, isLoading, error }
e aceita um parâmetro opcional de filtro. Siga o padrão dos hooks
existentes em /src/hooks. Retorne só o código do hook, sem imports desnecessários."15 templates organizados por categoria
Templates de geração de código
# Template 1: Componente React
"Cria um componente React [nome] que [descrição do comportamento].
Props: [lista de props com tipos].
Use Tailwind CSS para estilo. Sem useState desnecessário.
Siga o padrão dos componentes em [pasta/arquivo de referência].
Retorne o arquivo completo com types incluídos."
# Template 2: Endpoint de API
"Cria um endpoint [METHOD] em [caminho] que [ação].
Recebe: [input esperado com tipos].
Retorna: [output esperado com estrutura].
Validação com Zod. Error handling com status codes adequados.
Use o padrão dos endpoints existentes em [arquivo de referência]."
# Template 3: Função utilitária
"Cria uma função TypeScript chamada [nome] que [descrição].
Parâmetros: [parâmetros com tipos].
Retorno: [tipo de retorno].
Casos de borda: [liste os casos].
Sem dependências externas. Adiciona JSDoc completo."Templates de refatoração
# Template 4: Refatoração de função longa
"Essa função está grande demais. Refatora extraindo subfunções com
nomes descritivos. Mantém a assinatura externa idêntica.
Não muda a lógica — só reorganiza. Segue o estilo do projeto."
# Template 5: Remover duplicação
"Esses [N] arquivos/funções têm lógica duplicada. Extrai a parte
comum para [onde deve ir]. Atualiza os [N] lugares pra usar a versão
compartilhada. Mostra cada arquivo modificado separadamente."
# Template 6: Migração de padrão
"Migra essa implementação de [padrão antigo] para [padrão novo].
Mantenha o comportamento externo idêntico.
Exemplo do padrão novo: [arquivo de referência].
Mostra o before/after de cada mudança."Templates de debugging
# Template 7: Análise de erro
"Recebo esse erro: [stack trace ou mensagem de erro].
O código que causa é: [função/componente].
Contexto: [o que estava fazendo quando o erro apareceu].
Aponta a causa raiz e sugere a correção mínima necessária."
# Template 8: Bug de performance
"Esse componente/função está lento. Identifica:
1. Onde está o gargalo
2. Por que está acontecendo
3. A solução com menor impacto no código existente
Use as ferramentas disponíveis no stack ([React DevTools / profiler / etc])."
# Template 9: Tipo TypeScript errado
"TypeScript está reclamando: [mensagem de erro TS].
O código é: [trecho com o erro].
Explica o problema em uma frase e mostra a correção.
Não use 'any' ou type assertion como solução."Templates de documentação e testes
# Template 10: Gerar testes unitários
"Gera testes unitários completos pra esse arquivo usando [Vitest/Jest].
Cobre: happy path, casos de borda, error states.
Usa mocks pra dependências externas.
Siga o padrão dos testes em [pasta de referência].
Cada test deve ter nome descritivo em português."
# Template 11: Testes de integração
"Gera testes de integração pra esse endpoint usando [Supertest/etc].
Testa: sucesso, validação inválida, não autenticado, not found.
Mock apenas o banco de dados — o resto roda real."
# Template 12: JSDoc completo
"Adiciona JSDoc completo pra todas as funções exportadas.
Inclui: descrição, @param com tipos e descrição, @returns, @example.
O exemplo deve ser realista, não genérico."
# Template 13: README de módulo
"Gera um README.md pra esse módulo explicando:
- O que faz em 2 parágrafos
- Como usar (com exemplos de código)
- API pública (funções/componentes exportados)
- Dependências e configuração necessária"
# Template 14: Comentários de lógica complexa
"Adiciona comentários explicativos nas partes não óbvias desse código.
Não comente o óbvio — só o que tem raciocínio que um dev jr não entenderia."
# Template 15: Changelog de feature
"Com base nessas mudanças, gera uma entrada de CHANGELOG no formato
Keep a Changelog. Identifica o tipo: Added/Changed/Fixed/Removed.
Uma linha descritiva por mudança, orientada ao usuário final."Anti-patterns: prompts que geram código lixo
O que NÃO fazer nos seus prompts
'Melhora esse código' — Melhora como? Pra quê? Qual critério de melhora?
'Cria um CRUD completo' — De que entidade? Com qual stack? Seguindo qual padrão?
'Refatora pra ficar mais clean' — Clean é subjetivo. Especifique: extrai funções, remove duplicação, melhora nomes.
'Faz funcionar' sem mostrar o erro — Sem contexto, a IA chuta. Cole o erro completo.
Prompts de 20 linhas pedindo 10 coisas ao mesmo tempo — Divide em prompts menores. Um objetivo por vez.
Como evoluir seus prompts com o tempo
Mantenha um arquivo de prompts que funcionaram. Simples assim — um markdown com os prompts que geraram resultados bons. Com o tempo, você vai ter uma biblioteca personalizada pro seu stack e estilo de código.
Outra técnica: quando a IA gerar algo bom, peça pra ela explicar o que foi bem no prompt. 'O que nesse prompt foi específico o suficiente pra você gerar esse resultado?' Aprende rápido.
Checklist antes de enviar um prompt de código
- Incluí o contexto do que já existe?
- Especifiquei a stack e os padrões a seguir?
- Listei o que NÃO deve ser alterado?
- Defini o formato de saída esperado?
- O objetivo é um — não dez coisas ao mesmo tempo?
- Se tem erro, colei a mensagem completa?