O playbook de engenharia de prompt para programadores
(addyo.substack.com)1. Introdução: prompts determinam a produtividade no desenvolvimento
- O desempenho dos assistentes de código com IA depende da qualidade do prompt. Pedidos claros geram código mais refinado; perguntas vagas produzem saídas inúteis.
- Saber escrever prompts agora é uma competência essencial para desenvolvedores, e isso se parece com treinar um parceiro de desenvolvimento.
- Este texto mostra, com exemplos práticos e comparações, como uma “boa pergunta” leva a um “bom código”.
2. Os 7 princípios de prompts eficazes
① Fornecer contexto
- Como a IA não conhece o contexto do projeto do usuário, é preciso explicitar linguagem, framework, biblioteca, mensagem de erro, objetivo etc.
- Exemplo: incluir o contexto técnico em algo como “TypeError ao buscar user em ambiente Node.js + Express + Mongoose”.
② Deixar o objetivo claro
- “O código não funciona” não ajuda. Pergunte de forma precisa, como: “O resultado esperado é ○○, mas o real é △△. Por que isso acontece?”
③ Dividir tarefas complexas
- É mais eficaz pedir por etapas do que perguntar pela funcionalidade inteira de uma vez. Ex.: componente > gerenciamento de estado > integração com API.
④ Incluir exemplos de entrada e saída
- Mostrar um exemplo da saída desejada melhora a capacidade da IA de entender a intenção. (e.g.
[3,1,4]→[1,3,4])
⑤ Atribuir um papel
- Definir um papel, como “revise este código como um desenvolvedor sênior de React”, melhora a profundidade e a qualidade da resposta.
⑥ Melhorar iterativamente em modo conversacional
- A primeira resposta não precisa ser perfeita. Se você der feedback, a IA segue esse fluxo e produz resultados cada vez mais refinados.
⑦ Manter consistência no código
- Se o próprio código estiver escrito de forma consistente — nomes de função, formatação, comentários etc. — a IA também manterá essa linha, elevando a qualidade.
3. Estratégias de prompt para debugging
① Especificar o erro e comparar com o comportamento esperado
- Se você apresentar juntos a mensagem de erro, os sintomas do problema, o resultado esperado e os valores de entrada, a IA fará um diagnóstico mais preciso.
② Pedir rastreamento linha por linha
- Pedidos como “rastreie passo a passo onde o valor desta variável ficou incorreto” são eficazes para bugs lógicos complexos.
③ Fornecer um código mínimo reproduzível
- Se você mostrar apenas o código essencial em que o problema ocorre, em vez do código inteiro, a IA consegue analisar a causa com mais precisão.
④ Fazer perguntas de acompanhamento claras
- Em vez de “Por que esse resultado aparece?”, é melhor algo direto como “Qual condição está errada nesta parte?”
⑤ Comparação de exemplos: pergunta ruim vs. pergunta boa
- Dizer apenas “o código não funciona” leva a respostas baseadas em suposição; se você enviar a mensagem de erro e o código juntos, receberá uma solução mais precisa.
4. Estratégias de prompt para refatoração e otimização
① Deixar claro o objetivo da refatoração
- Em vez de simplesmente “refatore isso”, é preciso apresentar metas concretas de melhoria, como “aumentar a legibilidade, melhorar a performance, atualizar a API”.
- Se a meta for vaga, a IA pode tentar melhorias aleatórias ou mudar em uma direção indesejada.
② Fornecer contexto de linguagem/ambiente
- Se você informar o estilo do projeto ou restrições técnicas, como “migrar React de classe para funcional” ou “ambiente Node.js 14”, a conversão será mais adequada.
③ Pedir explicações junto com o código
- Se você pedir uma explicação de “por que foi mudado assim” junto com o código refatorado, ganha tanto revisão de qualidade quanto aprendizado.
④ Elevar o nível com pedidos baseados em papéis
- Pedidos como “refatore como um desenvolvedor sênior de TypeScript” tendem a gerar propostas mais modernas e profundas de melhoria.
5. Estratégias de prompt para implementar novas funcionalidades
① Pedir a funcionalidade em etapas
- Mesmo funcionalidades complexas dão resultados mais estáveis se forem pedidas na ordem “desenho da estrutura da funcionalidade → criação da UI → conexão da lógica”.
② Fornecer o estilo do código existente
- Se você mostrar componentes parecidos ou convenções internas, o código gerado seguirá a consistência do projeto. Ex.: “crie um ProductList com base no UserList”
③ Transmitir a intenção com comentários/TODO
- Em uma IDE, se você adicionar um comentário em linguagem natural como
// TODO: implementar validação da requisição, o Copilot pode gerar automaticamente um bloco de código correspondente.
④ Apresentar exemplos de entrada e saída
- Se você incluir exemplos de valores de entrada e da saída esperada, a IA tentará satisfazê-los, aumentando a precisão.
⑤ Melhorar iterativamente com base em feedback
- Mesmo que o primeiro resultado fique abaixo do esperado, se você der feedback como “use
mapem vez defilter”, a IA reflete isso imediatamente e evolui.
6. Os 7 padrões de prompts que falham (Anti-patterns)
① Pedido vago
- Perguntas como “por que esse código não funciona?” só geram respostas genéricas e sem utilidade. Inclua mensagem de erro, código e resultado esperado.
② Excesso de exigências
- Pedidos compostos como “gerar o app inteiro + adicionar autenticação + incluir script de deploy” causam omissões ou confusão, então é preciso separar por etapas.
③ Ausência de pergunta
- Se você só jogar o código sem um pedido, a IA tende a resumir ou entregar algo irrelevante; por isso, o objetivo da pergunta deve ficar claro.
④ Critério de sucesso pouco claro
- “Faça mais rápido” ou “deixe melhor” são critérios vagos. É preciso indicar uma meta mensurável, como “melhorar para complexidade de tempo O(n)”.
⑤ Ignorar as perguntas da IA
- Se a IA perguntar “isso é funcional ou baseado em classes?”, você precisa responder para receber uma saída otimizada.
⑥ Falta de consistência
- Se estilo, sintaxe e terminologia mudam o tempo todo, a IA também se confunde. Manter um único estilo melhora a qualidade da resposta.
⑦ Referências vagas como “o código acima”
- Quanto mais longa for a conversa, mais ambíguo fica “o código acima”. Sempre que possível, mostre o código novamente ou mencione explicitamente o nome da função.
7. Conclusão: colaborar com IA é uma conversa iterativa
- Engenharia de prompt agora é uma habilidade central de comunicação para desenvolvedores. Fornecer contexto, definir objetivos claros e iterar melhorias são o básico.
- A IA não é apenas um assistente de código, mas também um colaborador e parceiro de aprendizado. Se for bem usada, melhora não só a produtividade como também a capacidade de desenvolvimento.
- Ao usar estratégias diversas, como experimentação, feedback e definição de papéis, é possível tratar a IA como um integrante real da equipe.
- O objetivo final é gerar código com mais velocidade e precisão, mas também aproveitar ativamente a IA como ferramenta de aprendizado para se tornar um desenvolvedor melhor.
Tabela comparativa: prompts bons vs. ruins
| Categoria | Debugging | Refatoração | Implementação de funcionalidades |
|---|---|---|---|
| Prompt bom | O TypeError ocorre neste ponto. O valor esperado é ○○, mas está saindo NaN. Por favor, identifique a causa. |
Remova a duplicação desta função e melhore a performance. Separe a parte de fetch em um helper e mantenha as mensagens de erro. |
Crie um componente ProductList com campo de busca. Receba JSON de /api/products, filtre a lista e inclua também estados de erro e carregamento. |
| Prompt ruim | Por que minha função não funciona? |
Refatore isso. |
Crie uma funcionalidade de busca. |
5 comentários
Não é diferente de como lidar com programadores humanos.
Playbook de Engenharia de Prompt para Programadores
Consulte também a versão resumida pelo bot de resumo GN+. Os comentários com resumo do Hacker News também valem a leitura.
Você postou primeiro..
Obrigado.
Por favor, por favor, não façam isso, mas sempre tem um ou outro idiota que faz desse jeito 1 vez em 10 -_-
O que os humanos sabem?!