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.

一段看起来能跑的转账代码:查余额、判断、扣款、加款、写日志。它不会一上来告诉你哪里有问题 —— 第一幕它闭嘴,你自己读完、说完为止,然后才按严重度报你漏了哪些。

每一条它都不接受名词。你说「这里有并发问题」,它会要你画两列时间线:两个请求分别走到哪一步,账上最后的数是多少。画不出来的记成猜的。

收尾给的是发现率,还有一个更难看的数:你漏掉的里,有几条会直接让钱不见。

★★★★☆ · cerca de 40 min · O que é avaliado: 事务边界、读改写竞态、金额类型、幂等、鉴权、日志当账本

O que está plantado aqui

Concorrência Limites de transação Idempotência

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.