Saltar para o conteúdo
>_ship it with ai
métodoplanosmentoriagrátishistóriablog
Ver os planos
001 — A checklist
Ship It With AI

A checklist que faço a cada bloco de código que a IA escreve.

Vinte e sete perguntas. As primeiras três secções são específicas de código gerado — são as que a revisão normal não procura, porque o código parece bem escrito. As outras três são revisão a sério, que continua a ser precisa.

27 perguntas

APIs que não existem

específico de código gerado
  • Cada método, opção ou campo que não reconheces: confirmaste na documentação, ou só no autocomplete?
  • Opções passadas a funções nativas existem mesmo? Uma opção inventada não dá erro — é ignorada em silêncio.
  • A biblioteca tem esta função *nesta* versão? Confirma no package.json instalado, não num artigo de 2023.
  • Os imports resolvem todos sem o editor os corrigir sozinho por baixo?

Casos limite calados

específico de código gerado
  • Array vazio: divisões por comprimento, acesso a [0], reduce sem valor inicial.
  • null e undefined estão distinguidos de 0 e de string vazia, ou caíram todos no mesmo if?
  • Ordenações têm comparador? sort() sem argumento ordena como texto: 9900 antes de 24900.
  • Dinheiro em inteiros de cêntimos, não em floats. E o arredondamento está decidido, não herdado.
  • Datas: fuso definido explicitamente, e limites de dia, mês e horário de verão testados.

Tratamento de erros que só parece tratamento

específico de código gerado
  • Cada catch faz alguma coisa além de registar? Registar não é tratar.
  • Depois de um catch, a execução continua para código que assumia que tinha corrido bem?
  • fetch: res.ok verificado? Um 500 devolve uma resposta válida — o fetch não rejeita.
  • A mensagem que o utilizador vê diz-lhe o que fazer a seguir, ou só que algo correu mal?
  • O erro é registado com contexto suficiente para o reproduzires sem adivinhar?

Correção

  • Escreveste um teste que falha *antes* da correção, e passa depois?
  • Leste o ficheiro inteiro, ou só o diff? O que a IA apagou não aparece no diff que ela te mostra.
  • Consegues explicar cada linha em voz alta? A que não consegues explicar é a que te vai partir.
  • Os nomes dizem a verdade sobre o que a função faz agora, ou sobre o que fazia antes?

Segurança

  • Input do utilizador validado no servidor, e não só no cliente.
  • Queries parametrizadas. Nada de SQL construído por concatenação de strings.
  • Segredos fora do código e fora do bundle do cliente — tudo o que é NEXT_PUBLIC_ é público.
  • Autorização verificada por pedido: quem é dono deste registo, não apenas quem tem sessão.
  • Dependências novas: quem as mantém, quantos downloads, e quando foi a última publicação?

Desempenho

  • Há consultas à base de dados dentro de ciclos? É o N+1, e chega sempre em produção.
  • Cada await dentro de um for podia ser um Promise.all?
  • O que corre a cada pedido e podia ser calculado uma vez e cacheado?
  • A resposta devolve campos que ninguém usa? Payload é latência.

Isto é a revisão do M12 — Verificar Código Que Não Escreveste — numa página. Corre-a na próxima coisa que gerares.

© 2026 ship it with ai — dubai
© 2026 ship it with ai — dubai_
iníciotermosprivacidade