Kacam.net

Revisão de código

评审一段重试代码

「失败了就重试三次」——那第一次超时的那笔,对面到底收到没有?

Copie a instrução e escolha um modelo. Ele faz o papel de entrevistador e vai te perguntando ato por ato, em vez de entregar a resposta.

Num celular com o aplicativo instalado, o sistema abre o aplicativo direto. Dentro do WeChat não é possível abrir aplicativos externos — abra primeiro no navegador.

O texto copiado termina com o gabarito que o modelo usa para te avaliar. Não leia antes: o que vale é ter chegado lá sozinho.

一段二十行的重试代码,几乎每个项目里都有一段长得差不多的。

它会揪住一件事不放:超时不等于对面没收到。想明白这一句,才轮到讨论重试怎么写;想不明白,重试就是在把同一笔单下两遍。

另一条是规模:它会让你算一百个客户端同时超时,对面会收到多少 QPS —— 重试到底是在救火还是在浇油,是一个能算出来的数。

★★★★☆ · cerca de 35 min · O que é avaliado: 重试的前提是幂等、超时、退避与抖动、放大倍数、异常被吞掉

O que está plantado aqui

Retentativas e timeouts Idempotência Recursos e capacidade

Já fez este?

Entre para marcar que já treinou este; da próxima vez você verá em que dia foi.

Anotações de quem já fez

Ninguém escreveu ainda. Depois de fazer, conte o que saiu da conversa: qual ato te travou, qual conclusão você mudou depois.

Entrar para escrever uma anotação.

Como usar

O material é nosso: algumas dezenas de linhas com cara de código que funciona, com uns dez defeitos plantados em ordem de gravidade. Esta série não pede nada de você: abra uma e comece.

A postura é de interrogatório: sem spoiler, sem elogio, e não saber responder é um final normal. Diga «aqui tem uma condição de corrida» e ele não solta —— quer duas colunas de linha do tempo e o tamanho do estrago.

Como começar

  1. Escolha um, abra e copie o prompt.
  2. Cole numa conversa nova e vazia; ele devolve o código do jeito que está.
  3. Leia você mesmo e diga um por um os problemas que achar —— no primeiro ato ele não interrompe nem dá pista. Quando terminar, diga «é isso».

Quatro comandos para usar a qualquer momento

  • 跳过 Já para o próximo ato
  • 提示 Me dê uma direção, não a resposta
  • 直说吧 Dê a resposta completa deste ponto e continue cobrando o custo
  • 复盘 Ir direto para a ficha final

O fechamento é um número

Uma taxa de descoberta: quantos você achou, de quantos, e quantos foram alarme falso. Mais um número mais feio —— entre os que passaram batido, quantos são da gravidade máxima (perde dinheiro, vaza dado, derruba o serviço). Esse número vale mais que a nota.

Três armadilhas

  • O gabarito do fim é justamente essa lista de defeitos. Não leia antes —— depois de ler, o exercício já foi.
  • Não aponte nomes nem estilo. Aqui o que conta é se perde dinheiro ou vaza dado; apontar estilo é registrado como alarme falso.
  • Assim que começar a elogiar, lembre-o da regra «não me elogie». A sensação de estar certo abafa a pergunta «o que me passou batido».

Comece pela transferência: é a mais densa em defeitos. Se você escreve API o dia inteiro, vá direto ao endpoint de listagem —— a falha de permissão e a injeção pelo parâmetro de ordenação são as mais fáceis de achar iguais no seu código. Faça qual for e depois vasculhe o seu repositório: o produto de verdade são aquelas três checagens para levar.