Python 16 大 + Go 15 大 + Java 15 大 + TypeScript 15 大(含 JavaScript 基础 8) + 性能分析 8 大 + DDIA 数据系统 10 大 + Agent 应用开发 10 大 + 系统架构 17 大(总览+16 机制族)必会图谱 × 106 张架构图, 每张图配: 必知必会知识点 · 生产实战代码(10 场景) · 常见坑(20 条)
共同主题: CPU 调度 · 内存管理 · 垃圾回收 · 并发模型 · 数据结构 · 错误处理 · 工程化 — 运行时如何替你干活, 又在哪里需要你小心
性能分析专题: 时间到底花在哪里 / 谁在等什么 — Linux 四板斧 · 排队地图 · 重试与熔断 · 压测先测炮台 · 容量按"挂 N 台"规划
一把大锁串行化整个解释器: 线程模型、ceval 字节码循环、被保护的引用计数; CPU/IO 密集两种命运与五条破局路线。
引用计数(即时回收) + 分代 GC(兜底循环引用) + pymalloc 小对象池; RSS 只涨不降的真相与排查工具链。
yield = 可暂停的函数: 数据逐个流过管道, 内存 3×O(n) → O(1); 流式 ETL / 分页游标 / asyncio 的前身。
单线程调度器 + 协程协作: epoll 盯着上万 fd, await 即挂起; 唯一的罪是同步阻塞 — 毒药区与解法一览。
property/classmethod/ORM 字段的共同底层: 装饰器改函数, 描述符改属性访问, metaclass 改类创建。
WSGI vs ASGI、master-worker 信号遥控 (HUP/TERM/USR2)、systemd / Docker / K8s 三种宿主的探针与优雅停机。
一行 import 的真面目: sys.modules 缓存 → sys.path 搜索 → .pyc 编译; 循环导入三种解法与 importtime 冷启动优化。
BaseException 家族树、try/except/else/finally 执行时序、Exception Group 聚合、raise from 保留根因链。
一切皆对象: 实例→类→type 元类三层关系、C3 线性化、dataclass / __slots__ / 魔术方法协议表。
注解默认只是注释: mypy/pyright 静态兜底 + pydantic 运行时校验双通道; Protocol 结构化鸭子类型。
绕开 GIL 的正解: fork vs spawn 两种出生方式、Pool / SharedMemory / Queue 三件套与序列化边界。
str 是"人话"、bytes 是"电线上的字节": encode/decode 双向管道、码点 vs 字节、mojibake 乱码修复。
把"分配→使用→必释放"写成语法: __enter__/__exit__ 协议、ExitStack 动态资源栈、事务/锁/重定向模板。
装饰器洋葱模型、闭包细胞与延迟绑定坑、lru_cache / cached_property / partial / singledispatch 武器库。
Logger 是一棵树: 层级传播到 root, Handler/Formatter 决定去哪长啥样; 轮转 / 多进程 / 结构化三条命脉。
对象与字节的三条通道: pickle 深而危险 (__reduce__ RCE)、JSON 类型磨损、orjson / msgpack 提速降带宽。
G(2KB 协程)/P(执行凭证)/M(内核线程) 三层解耦; work stealing · syscall hand-off · SIGURG 信号抢占。
CSP 模型: hchan 内部结构、close 广播语义、select 随机分派; 扇入/worker pool/超时/取消四大惯用法。
编译期决定变量住栈还是堆: 六大逃逸触发器、-gcflags='-m' 验证、sync.Pool 复用 — P99 毛刺的源头治理。
并发标记-清除: 两次亚毫秒 STW + 混合写屏障; GOGC/GOMEMLIMIT 的 pacer 账本与"内存翻倍"真相。
数据竞争是未定义行为不是概率问题: Mutex/atomic/sync.Map 全家福、happens-before 规则、-race 工作流。
隐式契约的内存真相: eface/iface 两机器字、itab 方法表两跳寻址、typed-nil 陷阱与"小接口哲学"。
LIFO 栈式收尾协议: 参数立即求值 vs 闭包引用、panic 沿帧展开、recover 只在 defer 直接调用里有效。
ptr/len/cap 三元视图: append 扩容三部曲、共享 backing array 暗雷、三索引切片 s[a:b:c] 限容隔离。
8 槽桶 + tophash + 渐进式搬迁; 并发读写是 fatal error 不可 recover — sync.Map / 分片锁的正确选型。
error 是值: %w 包装链、errors.Is/As 沿 Unwrap 查找、哨兵 vs 类型化错误、"哪层知道怎么处理"的设计。
请求的一根生命线: 树形取消广播、超时预算沿调用链层层递减、value 只放请求元数据不放业务参数。
goroutine + channel 的乐高: worker pool / pipeline / fan-in-fan-out、errgroup 首错取消、信号量限流。
双时钟 (wall 可回拨 / monotonic 只前进)、time.After 循环泄漏现场、Timer Reset 三步安全法、2006 布局速记。
CPU / heap / goroutine / mutex / block 五类画像各自回答什么问题; top→list→火焰图三板斧与 bench 防回退。
MVS 最小版本选择、go.sum 校验与 GOPRIVATE、交叉编译一行命令、ldflags 注入版本号、vendor 两态。
运行时数据区 (Eden/Survivor/Old + 线程私有)、Minor/Full GC、JIT 分层编译; OOM 排查与容器堆大小实战。
生命周期五阶段、三层加载器、双亲委派的安全与唯一性; SPI/Tomcat 如何打破; NoSuchMethodError 排查。
主内存/工作内存抽象、三性对号入座、happens-before 规则; volatile 的能与不能, DCL 为什么必须 volatile。
七参数、反直觉执行流 (core→队列→max→拒绝)、四种拒绝策略; 为什么禁用 Executors, 监控与动态调参。
对象内存布局与 Mark Word 五状态; 偏向→轻量级→重量级升级路径; 锁消除/粗化与 AQS 一句话。
List/Set/Map 选型决策树; HashMap 数组→链表→红黑树演化、fail-fast、ConcurrentHashMap 分段并发。
不可变是刻意设计: 常量池复用、编译期折叠 vs 运行期 StringBuilder、compact strings、循环拼接灾难。
从"一连接一线程"到 Selector 多路复用; Buffer 状态机、堆外内存、零拷贝 transferTo 与 Netty boss/worker。
中间操作只注册不执行, 终端操作一次点火逐元素穿全链; parallelStream 的公共池是全 JVM 共享的。
泛型只活在编译期: 擦除后字节码没有 T、桥方法、new T()/T.class 为什么不行、PECS 通配符口诀。
一行 record 葬礼 40 行样板 DTO; sealed 封闭继承域 + switch 模式匹配穷尽检查, 新子类漏分支编译期报错。
Error/受检/非受检三分法、try-with-resources 的 suppressed、异常性能账单与 @ControllerAdvice 全局兜底。
框架的魔法引擎: Class/Method 反射调用链、JDK Proxy (接口) vs CGLIB (子类) 双通道、Spring AOP 落地。
告别 Date/SimpleDateFormat 线程坑: Instant/LDT/ZDT 三件套、UTC 存储 + 时区展示的黄金约定、yyyy vs YYYY。
线程 60 年来最大重写: mount/unmount 调度、阻塞不再烧内核线程、pinning 暗礁与 ThreadLocal 陷阱。
单线程不卡死的真相: 调用栈跑完 → 清空全部微任务 → 取一个宏任务; 微任务永远插队, 阻塞栈等于阻塞世界。
函数记住"定义时在哪"而非"调用时在哪": 作用域链写代码时定型, 闭包 = 函数 + 被它抓住的环境。
class 只是原型继承的糖纸: 属性沿 __proto__ 向上找, this 由"怎么调用"当场决定 — new/call/隐式/默认四规则。
单向状态机 + 错误滑道: then 返回新 Promise, async 是 then 链的语法糖; all/race/allSettled/any 收票策略。
新生代"复制"快进快出, 老生代三色并发标记; 泄漏不是 GC 的错 — 监听器/定时器/闭包/Detached DOM 四源头。
先解释后优化: 热点函数逐级上 TurboFan, 隐藏类与内联缓存决定属性访问速度 — 食言就 deopt 打回原形。
import 在解析期定型: 静态结构换来实时绑定与 Tree-Shaking, 动态需求交给 import() 分包与 sideEffects 声明。
== 的每一步都写在规范里: ToPrimitive → 偏好拼接还是数字 → 逐分支可比; 八假值、NaN、0.1+0.2 全破译。
类型参数是"类型的函数": 调用时推断、约束里限权、条件类型递归 — 但只活在编译期, 运行时一片空白。
TS 沿 if/switch 逐块缩小类型: 判别字段一动联合只剩一个; 漏分支交给 never 举报, 收窄失效点要背。
[K in keyof T] 是类型层的 for 循环: 遍历键、改形状、as 重映射改名 — Partial/Pick/Omit 全是它的马甲。
看形状不看出身: 字段对得上就能赋值 — 甜在 mock 零仪式, 苦在同形异义互串, brand 补回名义性。
vite build 不查类型! 检查归 tsc --noEmit, 转译归 esbuild/swc; strict 全家桶、解析三方一致、CI 双门禁。
d.ts 是形状说明书: 消费方只看它不看实现; declare 描述"别处存在的东西", merge 给库类型加字段。
类型管不了网线那头: as User 是自欺, schema.parse 才是闭环 — zod 单源、catch unknown、AbortSignal 贯穿。
时间账单 = On-CPU + Off-CPU: 四大指标、RED/USE、Little's Law、Amdahl、排队论拐点与诊断漏斗 — 分析就是把每一毫秒记清楚。
us/sy/wa/st 分账定方向, run queue 才是饱和真话筒; 单核 100% 是 event loop/GIL 的指纹, 从 top 到 perf 一层层缩小。
free 小不是病, available 下跌才是; 泄漏看曲线形状 (锯齿 vs 直线), OOM 先分宿主还是 cgroup, profile 抓分配方。
await/aqu-sz/%util 三仪表定饱和, NVMe 时代 util 会骗人; deleted 文件与 inode 耗尽两个暗坑, 四步收网抓凶手进程。
curl 分段定方向, TCP 状态定病种: TIME_WAIT 是常态, CLOSE_WAIT 是泄漏; 轻微丢包重传是 P99 的隐形杀手。
请求在每站排队: 锁/池/SQL/缓存/队列 — 连接满不可怕, 等待时间上涨才可怕; 穿透击穿雪崩三组药方与背压雪崩链。
retry 是放大器, deadline 是接力棒, 熔断是止损; 容量按"挂 N 台"规划、headroom 留 20~30%, 压测必须 open-loop。
平均数会撒谎, 分位数才是延迟语言 — Little 定并发, 曲棍球杆定容量; wrk/ab 输出逐行解剖, 压测机先死先查端口与 fd。
SoR 与派生数据世界观: OLTP/OLAP/数仓、物化; 分位数与尾延迟放大 1−(1−p)^n; 背压/限流/熔断/退避四层过载防御。
同一份数据三种形状: 关系表/JSON 文档/属性图; schema-on-write vs read; 事件溯源 + CQRS: 状态只是日志的投影。
LSM 追加写优 vs B-Tree 原地读优, 放大三兄弟; Bloom/tombstone/compaction; 行存/列存/倒排/向量四套索引各有各的题。
JSON 81B → Protobuf 33B → Avro 32B; 向后/向前兼容与 schema registry; RPC 超时后结果未知 → 幂等; broker 削峰解耦。
单主/多主/无主; 异步切主丢写 → 半同步; lag 三症状各有便宜解; quorum w+r>n 相交; LWW 静默丢数据 vs CRDT 合并。
mod-N 扩容迁 75% vs 一致性哈希 1/N; 热点 key 拆分+缓存; 本地索引 scatter/gather 尾部放大 vs 全局索引写放大。
隔离级别阶梯: RC→SI→serializable 各防什么; MVCC 快照防 read skew 防不了 write skew (医生值班); 2PC 是阻塞协议。
论证链: 六情形不可区分 → timeout+多数派 → GC 暂停 → fencing token → 共识 (epoch 选举+全序日志); CAP/PACELC 正确读法。
shuffle 是分布式排序; 事件时间开窗 + watermark 触发; dual-write 交错分叉 → outbox+CDC 单一事实流; offset 回拨即重放。
一切皆派生: 日志+投影; kappa 只留流重算=重放; 端到端 request ID; timeliness 可让 integrity 不让; saga 补偿与对账。
Agent 的本质是会调工具的 while 循环: messages 唯一状态、stop_reason 分流、三道终止守卫(步数/预算/重复检测); token 复利与断点续跑。
模型按 Schema 填表、代码验表执行: description/enum/required 契约、pydantic 校验闸门、错误观察回喂自愈、call.id 配对与写操作幂等。
AI 应用的 USB-C: 三原语按控制权划分(tools/resources/prompts)、stdio 与 Streamable HTTP 双传输、initialize 握手、OAuth 2.1 与 stdout 纪律。
窗口即现实: 46k 账单大头是历史堆积; 压缩/截断/子代理隔离三件武器; KV cache 前缀逐字节稳定 — 消息只追加, system 一字不改。
模型无状态, 跨会话靠外置: 写(提炼去重合并)/读(检索注入)/忘(TTL)三件事; 语义/情景/程序三类记忆; namespace 串号比没有记忆更危险。
两条管道一条纪律: 入库(分块/嵌入)与查询(改写/混合检索/重排); RRF 融合免调参、父子块精度兼得; 权限过滤必须在 SQL 层, 引用强制。
第一性收益是上下文隔离: supervisor 分派、subagent 独立大脑、只回传 schema 化摘要; handoff 移交载荷、黑板原子认领、逐 agent 记账。
不可信三角: 输入/工具返回/输出都按敌情处理; 间接注入是最主流攻击面; 数据指令分界+最小权限+沙箱纵深防御; 护栏是代码不是提示词。
Eval 防变坏、Trace 找瓶颈: 数据集→runner→judge→门禁四步成环; judge 与人工校准 ≥0.85 才上岗; badcase 回流让同类翻车不复发。
五道坎: SSE 流式、步骤级 checkpoint、幂等双保险、预算熔断与降级链、成本三维归因; prompt 灰度 + Little's Law 定容量, 回滚永远比修复快。
一张图看穿分布式骨架: 心跳→选举→租约 · 分片→复制→Quorum · 重试→幂等 · 限流→熔断; Kafka/K8s/etcd/Redis/ZK/MySQL 的机制配方与事故链/破局链, 配 10 场景 20 坑。
一群机器怎么不打架: 心跳超时触发竞选, 多数派承认才算主, 租约到期自动让位, fencing token 防脑裂; etcd/client-go/Redis 锁落地, 10 场景 20 坑。
没收到心跳 ≠ 死了: GC 停顿伪装死亡, phi 累积怀疑度才敢判死; K8s 三探针分工、Sentinel 判死参数与双主事故链, 10 场景 20 坑。
数据放哪、怎么搬: 一致性哈希扩容只迁 1/N, mod-N 迁走大半; Redis slot/Kafka 分区, 分片键选型、热点拆 key 与重平衡限速, 10 场景 20 坑。
一台挂了数据不升天: 同步/异步/半同步的 ACK 时机, 异步切主丢已确认写; MySQL GTID/Redis/Kafka ISR、WAL 与快照恢复, 10 场景 20 坑。
副本之间信谁: 线性到最终一致谱系, Quorum 读写交集, Raft 选举+日志复制全链; CAP/PACELC 正确读法与 LWW/CRDT 合并, 10 场景 20 坑。
请求太多怎么办: LB 五策略选型, 令牌桶/滑动窗口, nginx limit_req 与 Redis+Lua 集群限流; 背压让上游慢下来, 来不及就弃车保帅, 10 场景 20 坑。
挂了怎么继续跑: 超时沿链递减、退避重试、熔断三态、舱壁降级五件套; gobreaker/Resilience4j 落地与级联故障事故链, 10 场景 20 坑。
跨服务一致性拼图: 双写分叉的解药 Outbox, RocketMQ 事务消息与 Kafka EOS, TCC/Saga 补偿链, 幂等消费与 DLQ 闭环, 10 场景 20 坑。
多客户共用一套系统: 独立 DB/Schema/行级三模式成本阶梯, 行级 tenant_id 全链路防串号, K8s 配额与分池治理 Noisy Neighbor, 10 场景 20 坑。
A 怎么找到 B: 注册是带 TTL 的租约, 发现靠本地缓存兜底; Consul/Nacos/K8s SVC 三模式, 优雅上下线与配置热更回滚, 10 场景 20 坑。
用一致性换十倍读: Cache Aside 标准读写路径, 穿透/击穿/雪崩三兄弟药方 (Bloom/singleflight/TTL 抖动), 多级缓存与热 key 治理, 10 场景 20 坑。
没有统一的"现在": 物理钟回拨导致雪花 ID 重复, Lamport/Vector/HLC 只记因果; 计时用单调钟, 排序展示才用墙钟, 10 场景 20 坑。
让实际状态无限逼近期望: Reconciliation 调谐环, 调度两阶段与 bin packing, HPA 稳定窗口防震荡, Operator/CronJob/亲和性打散, 10 场景 20 坑。
回答系统现在怎么样: 指标发现症状、追踪定位、日志取证; OTel 全链路接入, Prometheus 告警规则, SLO 错误预算与 RED/USE, 10 场景 20 坑。
认证回答你是谁, 授权回答能干啥: TLS→认证→授权→审计五站流水线, RBAC/ABAC、mTLS 互信、Vault 动态密钥, 硬编码 AK/SK 事故链, 10 场景 20 坑。
积木的组合方式: 每种模式都在用复杂度换质量属性; 微服务拆分边界, CQRS+事件溯源单一事实源, Saga 编排 vs 协同, Gateway/BFF/Sidecar, 10 场景 20 坑。