Vedere il mondo
Allenamento di progettazione di sistemi
Istruzioni da copiare e portare altrove. Incollane una in qualunque modello grande: farà l'intervistatore e ti porterà dentro il problema atto per atto, invece di recitare la risposta.
Per ora queste istruzioni esistono solo in 简体中文.
Come si usa
Come iniziare
- Scegli una domanda, aprila e copia l'istruzione.
- Incollala in una conversazione nuova, non in una dove hai già discusso questa domanda: il modello seguirebbe le tue risposte precedenti.
- Non dire nulla. Aspetta la prima domanda.
Quattro parole che puoi lanciare in qualsiasi momento
跳过passare subito all'atto successivo提示dare una direzione, non la risposta直说吧spiegare per intero questo punto e poi continuare a chiedere il prezzo复盘saltare alla chiusura e stampare la scheda di ripasso
Tre trappole
- Non fare due domande nella stessa conversazione: il contesto della prima gli fa giudicare in anticipo il tuo livello.
- Non cercare la risposta appena te la chiede. Restare bloccato 30 secondi è già un'informazione utile.
- Quando inizia a farti i complimenti, rimandalo alla quinta regola: la sensazione di approvazione copre quello che ti è sfuggito.
Ordine consigliato: parti dall'esercizio sugli schemi trasversali come prova dei pezzi, usa la domanda sull'accorciatore di link per prendere il ritmo, poi scegli in base al tuo ambito e ripeti spesso quella sul tuo progetto.
Domande frequenti
秒杀 / 限时抢购
一秒钟涌进来十万个人,只有一百件货。
支付系统
钱不能多也不能少,而第三方随时超时。
订单与库存(电商交易链路)
一条链路跨四个服务,中间任何一步都可能失败。
短链系统
最简单的一道,专门考基本功。
Feed 流 / 朋友圈 / 微博时间线
读扩散还是写扩散,以及那个有一千万粉丝的人。
IM / 即时通讯
消息不能丢、不能重,还要在三个端上一致。
排行榜 / 计数系统
ZSet 谁都会用,同分怎么排、亿级怎么算名次就不一定了。
优惠券 / 红包
发一亿张券,核销不能重复,拆红包不能多出一分钱。
通知与推送系统
多通道、有配额,还不能把同一条推两遍。
限流器
四种算法的临界问题,以及计数的那台 Redis 挂了你放还是不放。
大文件上传 / 网盘
分片、续传、秒传,以及回调凭什么可信。
附近的人 / 打车派单
这其实是两道题,很多人把它们混成一道。
定时任务调度系统
只执行一次,以及「该跑没跑」怎么发现。
评论 / 树形结构
三种树存储没有绝对优劣,所以得先问产品要什么。
Esercizi speciali
通用模板:任何一道系统设计题
索引里没有的题,套这一份。
横切套路:第二层追问快问快答
专治「结论会背、推导讲不出」。
讲自己的项目
把「我做过一个 XX 系统」逼成三个数字 + 一个取舍 + 一个故障。