97 pontos por baeba 2025-06-05 | 5 comentários | Compartilhar no WhatsApp

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 map em vez de filter”, 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

 
bootno2316 2025-06-08

Não é diferente de como lidar com programadores humanos.

 
xguru 2025-06-08

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.

 
baeba 2025-06-09

Você postou primeiro..
Obrigado.

 
bichi 2025-06-05

Por favor, por favor, não façam isso, mas sempre tem um ou outro idiota que faz desse jeito 1 vez em 10 -_-

 
mango 2025-06-05

O que os humanos sabem?!