Grátiscode
  • Claude
  • Gemini

Explicar código legado

  • 4,5 (2)
  • 4
  • 2
  • 15 de mar. de 2026

O mapa que você queria ter recebido no primeiro dia.

Grátis

Grátis. Precisa de conta.

Laboratório

Teste o funcionamento antes de comprar.

Testar

Prompt

30 linhas

Você está explicando este código para alguém competente que chegou ao time hoje
e não conhece o domínio.

```{{linguagem}}
{{codigo}}
```

Contexto que eu já tenho: {{contexto}}

Explique em três alturas, nesta ordem:

## 1. Altura do produto (5 frases)
O que este código faz para o usuário final? Se ele sumisse, o que quebraria?

## 2. Altura da estrutura
- Quais são as peças e como se chamam
- O caminho de execução principal, em passos numerados
- O que entra e o que sai

## 3. Altura da armadilha
- Trechos cuja intenção não é óbvia pelo nome
- Suposições implícitas (ordem, formato, estado global, efeito colateral)
- O que quebra se alguém mexer sem cuidado

## 4. Perguntas para o autor
Até 5 perguntas cuja resposta você não encontra lendo o código. Priorize as que mudam
como eu deveria alterá-lo.

Não invente história sobre o porquê de decisões. Se não dá para saber pelo código,
isso vira pergunta na seção 4.

O que este prompt faz

Produz uma leitura em três alturas do mesmo arquivo: o que ele faz no produto, como está organizado, e onde estão as armadilhas. Termina com as perguntas que você deveria fazer a quem escreveu.

Preview

Resultado

1. Altura do produto

Esta função prepara a lista de itens que vai virar cobrança. Ela aplica um desconto de 10% a itens marcados com t, opcionalmente descarta itens em um estado específico, e ordena do mais caro para o mais barato. Se sumisse, a fatura sairia sem desconto, com itens que deveriam ter sido excluídos, e em ordem arbitrária.

2. Altura da estrutura

Peças: uma função só, sem estado. items é uma lista de dicionários; flag é um interruptor booleano.

Caminho principal:

  1. Percorre cada item da entrada.
  2. Se flag é verdadeiro e o campo st vale exatamente 2, pula o item.
  3. Copia o item e sobrescreve v: multiplica por 0.9 se t for truthy, senão por 1.
  4. Ordena o resultado por v decrescente.

Entra: lista de dicts com pelo menos a chave v. Sai: lista nova, ordenada. A entrada não é modificada, {**i} cria cópia rasa.

3. Altura da armadilha

  • st == 2 é um número mágico. Não há nada no código que diga o que 2 significa. Provavelmente um enum de status que virou inteiro solto.
  • t é truthy, não is True. Um item com "t": 0 não ganha desconto, mas "t": "não" ganha, string não vazia é truthy. Se esse campo vem de JSON externo, é um bug esperando.
  • i["v"] sem .get. As outras chaves usam .get e toleram ausência; v explode com KeyError. A inconsistência sugere que v é obrigatório, mas isso não está validado.
  • Cópia rasa. Se um item tiver valor aninhado, ele é compartilhado entre entrada e saída. Alterar o resultado altera o original.
  • Ponto flutuante em dinheiro. * 0.9 sobre float acumula erro de arredondamento. Em faturamento, isso costuma virar divergência de centavos.
  • flag=False é o padrão. Quem chamar sem o argumento não filtra nada, o comportamento "seguro" aqui é o mais permissivo.

4. Perguntas para o autor

  1. O que é st == 2? Existe um enum em algum lugar, ou o 2 é literal em todo o código?
  2. t significa "tributado"? O desconto de 10% é regra de negócio permanente ou uma promoção que ficou?
  3. v está em centavos (int) ou em reais (float)? Se for float, o arredondamento já causou divergência?
  4. Quem chama com flag=True e quem chama sem? A escolha do padrão False foi deliberada?
  5. Alguém depende da ordenação por valor, ou ela é só apresentação?

Como usar

  1. 1

    Copie o template

    Use o botão de copiar no bloco acima. São 30 linhas de instrução.

  2. 2

    Preencha as variáveis

    Troque as 3 variáveis destacadas pelo seu conteúdo. Deixar em branco degrada a saída.

  3. 3

    Escolha um dos modelos listados

    Rode em um dos modelos listados na lateral. Modelo menor costuma degradar o resultado.

  4. 4

    Cole e execute

    Ou use o laboratório, com sua chave, e compare com o preview.