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 35 min · O que é avaliado: 更新顺序的两条时间线、穿透与击穿、TTL 雪崩、缓存挂了怎么办

O que está plantado aqui

Cache Concorrê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.