Ver o mundo
Treino de projeto de sistemas
Instruções que você copia e leva para outro lugar. Cole uma em qualquer modelo grande e ele faz o papel de entrevistador, conduzindo você pelo problema ato por ato em vez de recitar a resposta.
Por enquanto estas instruções existem só em 简体中文.
Como usar
Como começar
- Escolha uma pergunta, abra e copie a instrução.
- Cole numa conversa nova — não numa em que você já discutiu esta pergunta, senão o modelo segue suas respostas antigas.
- Não diga nada. Espere a primeira pergunta.
Quatro palavras que você pode usar a qualquer momento
跳过passar já para o próximo ato提示dar uma direção, não a resposta直说吧explicar este ponto inteiro e depois continuar cobrando o custo复盘pular para o fecho e emitir o cartão de revisão
Três armadilhas
- Não faça duas perguntas na mesma conversa: o contexto da primeira faz o modelo julgar seu nível antes da hora.
- Não busque a resposta assim que ele perguntar. Travar por 30 segundos já é uma informação útil.
- Quando ele começar a te elogiar, mande ver a quinta regra: a sensação de aprovação encobre o que você deixou passar.
Ordem sugerida: comece pelo treino de padrões transversais como teste de peças, use a pergunta do encurtador de links para pegar o ritmo, depois escolha pela sua área e repita várias vezes a do seu próprio projeto.
Perguntas frequentes
秒杀 / 限时抢购
一秒钟涌进来十万个人,只有一百件货。
支付系统
钱不能多也不能少,而第三方随时超时。
订单与库存(电商交易链路)
一条链路跨四个服务,中间任何一步都可能失败。
短链系统
最简单的一道,专门考基本功。
Feed 流 / 朋友圈 / 微博时间线
读扩散还是写扩散,以及那个有一千万粉丝的人。
IM / 即时通讯
消息不能丢、不能重,还要在三个端上一致。
排行榜 / 计数系统
ZSet 谁都会用,同分怎么排、亿级怎么算名次就不一定了。
优惠券 / 红包
发一亿张券,核销不能重复,拆红包不能多出一分钱。
通知与推送系统
多通道、有配额,还不能把同一条推两遍。
限流器
四种算法的临界问题,以及计数的那台 Redis 挂了你放还是不放。
大文件上传 / 网盘
分片、续传、秒传,以及回调凭什么可信。
附近的人 / 打车派单
这其实是两道题,很多人把它们混成一道。
定时任务调度系统
只执行一次,以及「该跑没跑」怎么发现。
评论 / 树形结构
三种树存储没有绝对优劣,所以得先问产品要什么。
Treinos especiais
通用模板:任何一道系统设计题
索引里没有的题,套这一份。
横切套路:第二层追问快问快答
专治「结论会背、推导讲不出」。
讲自己的项目
把「我做过一个 XX 系统」逼成三个数字 + 一个取舍 + 一个故障。