Playbook de Prompt Engineering para Programadores
(addyo.substack.com)- Assistentes de IA para programação não conseguem saber sozinhos a intenção do projeto, então a qualidade do resultado muda bastante conforme o quanto o desenvolvedor fornece de contexto, objetivo e exemplos
- Em depuração, em vez de apenas jogar o código e o erro, é preciso fornecer também o comportamento esperado, o comportamento real e o ambiente de execução, além de reduzir o escopo do problema com rastreamento linha por linha ou um exemplo mínimo reproduzível
- Em refatoração e otimização, em vez de pedir para “melhorar”, é necessário deixar claros os critérios de sucesso, como remoção de duplicação, processamento paralelo, manutenção do tratamento de erros e restrições de versão
- Na implementação de novas funcionalidades, é mais seguro dividir e revisar em pequenas etapas — como planejamento, esqueleto, gerenciamento de estado, integração de API e casos de borda — do que pedir tudo de uma vez
- Perguntas ambíguas, exigências excessivas, despejo de código sem pergunta e referências pouco claras prejudicam o resultado; a IA deve ser tratada não como um gerador de uso único, mas como um pair programmer conversacional e iterativo
Princípios básicos para usar bem assistentes de IA para programação
- Assistentes de IA para programação podem ajudar com autocompletar de funções, sugestões de correção de bugs e até geração de módulos ou MVPs, mas a intenção específica do projeto depende das informações fornecidas pelo usuário
- Um bom prompt trata a IA como uma “colaboradora que interpreta tudo literalmente” e orienta com clareza o resultado e o formato desejados
- Os princípios básicos são os seguintes
- Forneça contexto rico: inclua linguagem, framework, bibliotecas, funções relacionadas ou trechos de código, mensagens de erro exatas e comportamento esperado
- Especifique o objetivo: em vez de “por que não funciona?”, restrinja a pergunta para algo como “por que esta função JavaScript retorna
undefinedem vez do valor esperado e como corrigir isso?” - Divida tarefas complexas: em vez de pedir uma funcionalidade grande de uma só vez, avance em sequência, como gerar o esqueleto de um componente React, adicionar gerenciamento de estado e integrar chamadas de API
- Forneça exemplos de entrada e saída: exemplos como a entrada
[3,1,4]que deve retornar[1,3,4]reduzem a ambiguidade dos requisitos - Defina um papel: dar um papel como “senior React developer”, “JavaScript performance expert” ou “code reviewer” pode ajustar a profundidade e o estilo da resposta
- Itere e refine: se a primeira resposta não servir, ajuste a direção com pedidos seguintes, como usar laço em vez de recursão, melhorar nomes de variáveis ou adicionar comentários
- Mantenha clareza no código: nomes significativos para funções e variáveis, formatação consistente, comentários e docstrings ajudam a IA a entender a intenção do código
Padrões de prompt para depuração
- Um pedido de depuração deve incluir o que o código deveria fazer, o que de fato está errado e qual erro está ocorrendo
- Um bom prompt de depuração normalmente inclui as seguintes informações
- linguagem usada e ambiente de execução
- código com problema
- mensagem de erro exata ou saída incorreta
- saída esperada
- entrada de exemplo
- métodos já tentados
- Em bugs de lógica mais complexos, você pode pedir à IA um rastreamento de execução linha por linha para acompanhar as mudanças de estado
- Exemplo: “nesta função, rastreie como o valor de
totalmuda em cada etapa e encontre onde a acumulação está dando errado”
- Exemplo: “nesta função, rastreie como o valor de
- Mesmo que a base de código seja grande, se for possível criar um pequeno trecho que reproduza o bug, é melhor apresentá-lo como um exemplo mínimo reproduzível
- Se a primeira resposta for apenas parcialmente útil, você pode continuar com perguntas como “mostre o código corrigido” ou “explique por que essa alteração resolve o problema”
Exemplo de depuração: pergunta ambígua e pergunta aprimorada
- O código de exemplo é uma função Node.js/JavaScript
mapUsersById(users)que tenta converter um array de usuários em um objeto indexado por ID - O bug é `for (let i = 0; i
Ainda não há comentários.