Pular para o conteudo principal

Prompt engineering para desenvolvimento: o que funciona na prática

Prompt bom para engenharia parece mais briefing de trabalho do que truque de wording.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

O problema

Muita conversa sobre prompt engineering para desenvolvimento virou quase superstição com verniz técnico.

A pessoa acha que a resposta melhora porque escreveu:

  • “você é um engenheiro 10x”
  • “pense passo a passo”
  • “seja brilhante”

Às vezes até melhora um pouco.

Mas quase nunca é isso que faz mais diferença no trabalho real.

O que mais costuma estragar resposta em contexto de código é coisa bem mais básica:

  • tarefa mal definida
  • escopo grande demais
  • contexto faltando
  • contexto sobrando
  • restrição implícita que nunca foi dita
  • saída impossível de revisar

Então o problema não é “não saber a frase certa”.

O problema é pedir ajuda para o modelo de um jeito tão solto que qualquer resposta mais ou menos já parece boa o suficiente.

Modelo mental

Pense assim:

Prompt engineering para desenvolvimento é desenho de tarefa, não truque de redação.

Essa frase organiza bem a cabeça.

Porque desloca a pergunta de:

  • “como eu escrevo de um jeito impressionante?”

para:

  • “como eu enquadro essa tarefa para a resposta vir útil, limitada e verificável?”

Na prática, um bom prompt para engenharia costuma ter quatro coisas:

  1. objetivo claro
  2. contexto suficiente
  3. restrições explícitas
  4. saída fácil de revisar

Se isso está bem feito, o resto pesa bem menos.

Quebrando o problema

Comece pela tarefa, não pelo estilo

Muita gente começa tentando “embelezar” o prompt.

Mas o passo mais importante é outro:

  • o que exatamente eu quero desta resposta?

Não:

  • “melhore esse código”

E sim:

  • “encontre o ponto em que validação falha”
  • “sugira a menor mudança possível”
  • “gere testes para estes três cenários”
  • “compare duas abordagens dadas estas restrições”

Quando a tarefa fica nítida, a resposta tende a ficar melhor sem teatro.

Escopo pequeno costuma vencer escopo heroico

Esse é um padrão muito forte.

Pedido ruim:

  • “refatore esse módulo”

Pedido melhor:

  • “explique esta função”
  • “aponte os riscos deste fluxo”
  • “extraia só a validação para reduzir duplicação”
  • “sugira um diff pequeno sem mudar comportamento”

Quanto maior o pedido, maior a chance de o modelo:

  • inventar demais
  • expandir o escopo
  • mudar coisa que você não queria
  • devolver algo difícil de revisar

Prompt bom em desenvolvimento geralmente é conservador no tamanho.

Contexto útil não é contexto infinito

Outro erro comum é achar que mais contexto sempre ajuda.

Nem sempre.

Se você joga arquivo, stack trace, conversa, requisito, log, backlog e opinião pessoal tudo de uma vez, o modelo pode:

  • se perder
  • focar no detalhe errado
  • ignorar a parte que realmente importava

Contexto útil é contexto que muda a resposta.

Vale incluir coisas como:

  • qual arquivo ou trecho importa
  • qual comportamento precisa ser preservado
  • qual bug ou objetivo você quer atacar
  • qual restrição existe
  • qual formato de resposta você espera

Vale evitar contexto que só aumenta ruído.

Restrição explícita economiza retrabalho

Modelo responde melhor quando sabe onde não mexer.

Alguns exemplos de restrição que ajudam bastante:

  • “não reescreva a função inteira”
  • “não mude comportamento fora deste caso”
  • “preserve a API pública”
  • “não introduza dependência nova”
  • “responda com diff pequeno”
  • “liste premissas e riscos”

Isso não garante perfeição.

Mas reduz uma classe enorme de resposta inútil.

Formato de saída importa muito mais do que parece

Às vezes a resposta está razoável, mas vem em formato ruim.

E formato ruim mata utilidade.

Para desenvolvimento, costuma ajudar pedir coisas como:

  • diff pequeno
  • lista de riscos
  • casos de teste
  • explicação curta do porquê
  • premissas assumidas
  • comparação entre opção A e B

Isso melhora revisão.

Porque você não recebe só texto bonito.

Recebe algo que encaixa melhor no seu fluxo de trabalho.

Pergunta verificável gera resposta mais útil

Prompt forte quase sempre deixa claro:

  • como saber se a resposta serviu

Exemplos:

  • “o endpoint deve rejeitar valor negativo”
  • “o componente deve continuar aceitando a mesma prop”
  • “a solução não pode alterar a assinatura pública”
  • “quero três testes cobrindo caso feliz, borda e erro”

Quando você explicita critério de sucesso, a conversa com o modelo para de ser literária.

E começa a ficar operacional.

Iterar no prompt é parte do processo, não fracasso

Tem gente que trata a primeira resposta ruim como prova de que a ferramenta não presta.

Ou trata a primeira resposta boa como prova de que o prompt foi genial.

Os dois exageram.

Na prática, costuma funcionar assim:

  1. você faz um pedido inicial
  2. observa onde a resposta saiu do trilho
  3. corrige escopo, contexto ou restrição
  4. pede de novo de forma mais precisa

Isso não é gambiarra.

É ajuste normal de interface.

Prompt engineering maduro tem mais cara de depuração do que de magia.

Exemplo simples

Imagine que um teste de criação de usuário está falhando porque o backend aceita e-mail vazio em um fluxo específico.

Pedido ruim:

“Corrija esse bug e melhore o código.”

Esse pedido convida uma resposta perigosa.

O modelo pode:

  • mexer em validação demais
  • renomear coisas sem necessidade
  • reestruturar camadas
  • tocar em mensagens de erro fora do bug

Agora veja um pedido melhor:

“Neste endpoint, o e-mail vazio está passando. Quero a menor mudança possível para rejeitar string vazia sem alterar a API pública nem reestruturar o módulo. Responda com: 1) hipótese do ponto de falha, 2) diff curto, 3) testes que cobrem caso feliz, vazio e nulo, 4) riscos ou premissas.”

Esse segundo pedido faz várias coisas certas:

  • define o bug
  • limita o escopo
  • protege comportamento adjacente
  • pede saída revisável
  • exige explicitação de risco

Não tem nada de mágico.

Só tem enquadramento melhor.

Erros comuns

  • Achar que wording sofisticado compensa tarefa mal definida.
  • Pedir análise, refactor, teste, performance e documentação tudo no mesmo prompt.
  • Jogar contexto demais e deixar o sinal se perder.
  • Não explicitar o que não pode mudar.
  • Aceitar resposta longa como se comprimento fosse qualidade.
  • Não pedir formato de saída compatível com revisão real.
  • Esquecer de iterar quando a resposta falha por ambiguidade do próprio pedido.

Como um senior pensa

Quem tem mais experiência trata prompt como ferramenta de trabalho.

Não como ritual de ferramenta.

A lógica costuma ser:

“Se a resposta precisa ser útil para engenharia, eu preciso tornar a tarefa menor, mais observável e mais verificável.”

Essa pessoa tende a perguntar:

  • o que exatamente estou delegando?
  • qual contexto realmente muda a resposta?
  • que restrição evita expansão inútil?
  • como vou revisar isso depois?

Também percebe rápido quando o problema não é prompt.

Às vezes o problema é:

  • tarefa ruim demais para delegar daquele jeito
  • contexto insuficiente de verdade
  • sistema complexo demais para resposta única
  • falta de entendimento humano antes de pedir ajuda

Ou seja: maturidade aqui não é “saber pedir bonito”.

É saber desenhar bem a colaboração.

O que o entrevistador quer ver

Quando esse tema aparece em entrevista, normalmente o avaliador quer descobrir se você:

  • entende prompt como ferramenta de enquadramento
  • sabe limitar escopo em tarefa de código
  • pensa em saída revisável e risco
  • consegue iterar com método quando a primeira resposta vem ruim

Resposta forte costuma soar assim:

“No trabalho, eu tento tornar o prompt operacional. Defino objetivo, passo só o contexto relevante, explícito o que não pode mudar e peço formato de saída fácil de revisar, como diff curto, riscos e testes. Se a resposta vier ruim, eu ajusto escopo ou restrição antes de tentar de novo.”

Isso mostra critério.

Porque a conversa deixa de ser sobre truque de ferramenta.

E passa a ser sobre engenharia de tarefa.

Prompt bom não salva pedido confuso. Ele só deixa a confusão mais bem escrita.

Em desenvolvimento, o melhor prompt costuma ser o que facilita revisar, testar e dizer “não”.

Resumo rápido

O que vale manter na cabeça

Checklist de pratica

Use isto ao responder

Você concluiu este artigo

Próximo artigo Review de código gerado por IA: o checklist real antes de aceitar Artigo anterior Como validar código gerado por IA ao vivo

Continue explorando

Artigos relacionados