学习
关于架构、AI 系统工程,以及交付生产软件背后纪律的长篇文章与课程。免费阅读。这是我希望加入团队的资深工程师所掌握的东西。
架构与系统
设计可扩展、可长久的系统。
- 进阶约 7 小时阅读
Software Architect:思维、语言与实践
一门面向 senior engineer 的完整课程,帮你像架构师一样思考和表达:trade-offs、boundary、数据、分布式系统、质量、沟通,以及 AI-native 的工作方式。
- 入门约 20 分钟阅读
架构师是一种思维方式
软件架构速成课。九章,讲如何用一种今天的决策塑造未来三年的眼光去看问题。只讲精髓——用画面代替定义,用问题代替答案。
- 入门~25 分钟阅读
扩展就是拓宽瓶颈
速成课,讲系统设计与扩展——扩展意味着什么、垂直与水平扩展和无状态服务器、负载均衡器、缓存与 CDN、read replicas 与 sharding、队列与异步,以及如何理智地扩展。每一个都配一幅画面、一个具体例子。只讲精髓:先测量再猜。
- 入门~25 分钟阅读
模式是系统会呈现的形状
软件架构模式速成课。一个系统可能呈现的几种已知形状——分层、hexagonal、微服务、event-driven、CQRS,等等——每一种都配一幅画面、一个具体例子,以及它收取的代价。只讲精髓:用例子代替理论,用问题代替吹捧。
- 入门~25 分钟阅读
设计模式是一套共享的词汇
经典设计模式速成课。Gang of Four 的目录——Factory、Builder、Adapter、Decorator、Strategy、Observer 以及其余的——每一个都配一幅画面、一个具体例子,以及关于何时不该用它的实话。只讲精髓:用例子代替 UML。
- 入门~25 分钟阅读
协议是程序之间对话的方式
速成课,讲现代应用赖以运转的数据交换协议——TCP/UDP、HTTP/1-2-3 与 TLS、REST、GraphQL、gRPC、WebSocket、SSE、webhook、消息队列、Kafka、MQTT,以及在线路上传输的那些格式。每一个都配一幅画面、一个具体例子,以及何时该用它。只讲精髓:用例子代替 RFC。
- 入门~25 分钟阅读
数据库是系统的记忆
速成课,讲数据库与数据存储——relational/SQL、document、key-value、wide-column、graph、time-series、search、vector,以及 object storage,外加 ACID/BASE/CAP、索引、复制与分片。每一个都配一幅画面、一个具体例子,以及何时该用它。只讲精髓:用例子代替跑分。
AI 工程
在语言模型之上构建可靠的产品。
- 入门~25 分钟阅读
LLM 只负责预测,其余的由你来工程化
速成课,讲如何用大语言模型来构建——LLM 究竟是什么、prompt、context engineering、RAG、tool 与 agent、eval、guardrails、成本,以及如何可靠地交付。每一个都配一幅画面、一个具体例子,以及何时该用它。只讲精髓:工程重于魔法。
- 中级~25 分钟阅读
模型只知道窗口里有什么
关于 context engineering 的速成课——也就是把恰到好处的文本组装进模型 context window 的功夫。为什么窗口就是它知道的全部,prompt engineering 与 context engineering 的区别,system prompt 与 few-shot 示例,相关性胜过完整性,把窗口当作预算,以及 context rot。每一点都配一幅朴素的画面、一个具体例子和一个准确的词。只讲精髓:LLM 的质量活在你摆到模型面前的东西里,而不在巧妙的措辞中。
- 中级~25 分钟阅读
让模型先思考再作答
关于 reasoning model 和 test-time compute 的速成课——为什么让模型在作答前先一步步推演能提升它在难题上的表现,以及何时值得为此付出代价。chain-of-thought、reasoning model、在作答时多花算力、推理在何时有用、思考的代价,以及为什么推理不等于真相。每一点配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:想得更久会让模型更擅长难题,却在简单题上白费力气。
- 中级~25 分钟阅读
从聊天机器人到组件
关于 structured output 与 tool use 的速成课——把语言模型从一个只会吐出散文的聊天机器人,变成你的代码可以依赖的可靠组件。涵盖 structured output 与 schema、在边界处做 validation、function calling 与工具、设计好的工具,以及 MCP。每一项都配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:要在模型之上构建软件,你需要代码可以信任的输出,以及让模型安全行动的方式。
- 中级~25 分钟阅读
意义即坐标
关于 embedding 与向量检索的速成课——把意义变成数字,于是「找出与此类似的东西」就变成了「找出邻近的点」。embedding 如何把意义放进空间、相似度如何成为距离、vector database、semantic search、检索之外的众多用途,以及那些陷阱。每一点配一幅朴素的画面、一个具体的例子,和恰当的那个词。只讲精髓:embedding 是搜索、RAG、推荐等背后那台安静的引擎——让意义变得可计算。
- 中级~25 分钟阅读
先修好检索,再去怪模型
关于 RAG 与接地的速成课 —— 为什么你要把事实直接交给模型、而不是指望它的记忆,分块、embeddings 与向量检索,为什么检索质量才是全部,接地与引用,评测 RAG,以及如何把它做好。每一点都配一幅画面、一个具体例子,以及该在何时用它。只讲精髓:在 RAG 里,模型几乎从不是问题 —— 是你的检索出了问题。
- 中级~25 分钟阅读
教模型认识你的世界的三种方式
关于 prompting、RAG 和 fine-tuning 的速成课——这是给模型注入它默认不具备的知识或行为的三种方式,以及如何选择。为什么模型不了解你的世界,prompting、RAG、fine-tuning 与 LoRA,关键区别(形式还是事实),以及决策阶梯。每一种都配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:大多数人一上来就伸手去够最贵的那个选项,而 fine-tuning 往往并不是他们真正需要的。
- 中级~25 分钟阅读
会看会听、不止会读的模型
关于 multimodal AI 的速成课——能接收图像、音频和视频,而不仅仅是文本的模型。一个模型如何「看」、multimodal 解锁了什么、如何在你的产品里组合不同 modality、跨 modality 的生成,以及那些新的陷阱。每一项都配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:你为文本学到的那套工程依然适用,外加当模型能感知文字之外的东西时,多出来的新能力和新陷阱。
- 中级~25 分钟阅读
和 AI 对话,而不是打字
关于语音与实时 AI 的速成课——打造用嘴说而不是用手敲的产品。语音流水线由 speech-to-text、模型、text-to-speech 三段组成;latency 的挑战;turn-taking 与打断;以及 end-to-end 实时模型。每个都配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:语音意味着听、想、说,而且要快到像一场对话,难点就在于实时做到这一切。
- 中级~25 分钟阅读
在设备上运行的 AI,而不是在云端
关于 on-device 与 edge AI 的速成课——直接在手机、笔记本或传感器上运行模型,而不是在数据中心里。为什么本地很重要、模型如何变得足够小以塞进设备、能力上的取舍、用专精胜过体量,以及 hybrid 模式。每一点都配一幅朴素的画面、一个具体的例子和一个恰当的词。只讲精髓:一个在本地运行的小模型,解锁了隐私、离线使用、即时响应和零单次调用成本——代价是原始能力。
- 中级~25 分钟阅读
按 token 为智能付费
关于用 AI 做开发的经济学速成课——为什么每次调用模型都要花钱花时间,以及如何把成本控制在可承受范围内。token 与账单、为什么 frontier model 并不总是答案、按难度做 routing、caching、精简与 batching,以及延迟-成本-质量三角。每一点配一幅朴素的画面、一个具体的例子和一个恰当的词。只讲精髓:成本和速度是设计约束,能过线的最便宜的模型通常就赢了。
- 中级~25 分钟阅读
agent 是一个你必须亲手工程化的循环
速成课,讲如何构建可靠的 AI agent——agent 究竟是什么、为什么默认状态下它只有约 57% 的成功率、context 与记忆、工具与真实世界、编排与拆解、那根让它安全的牵绳,以及把它送上生产的 eval。每一个都配一幅画面、一个具体例子,以及何时该用它。只讲精髓:可靠性才是产品,而它来自循环,而非模型。
- 中级~25 分钟阅读
当一个智能体不够用时
关于 multi-agent 编排的速成课——把工作拆分给由 orchestrator 协调的多个专门智能体,以及它何时胜过单个智能体。为什么一个什么都做的智能体什么都做不好、orchestrator 模式、专门的 worker、handoff、sequential/parallel/hierarchical 模式,以及被成倍放大的故障模式。每一点都配一幅朴素的画面、一个具体的例子和恰当的词。只讲精髓:多个智能体可以更强——而条件反射式地上 multi-agent 会成倍放大它出错的方式。
- 中级~25 分钟阅读
假设模型一定会被骗
关于 AI 与 LLM 安全的速成课——为什么模型分不清你的指令和攻击者的指令、提示注入、智能体的攻击面、数据泄漏、以爆炸半径为核心的防御心态、护栏与校验,以及如何安全运营。每个主题配一幅画面、一个具体例子,以及该怎么做。只讲精髓:你无法让模型变得骗不倒,所以要守住被骗的模型能够触及的一切。
- 中级~25 分钟阅读
为一个有时会出错的模型做设计
关于 AI 产品设计的速成课——在一个自信、流畅、却有时会出错的部件之上,搭建用户体验。设定诚实的预期、把模型的过程展示出来、让人始终掌控、优雅地失败,以及闭合反馈回路。每一点都配一幅朴素的画面、一个具体例子和一个准确的词。只讲精髓:模型天生就会犯错,所以赢得用户信任的是设计,而不是模型。
- 中级~25 分钟阅读
打造你能负责的 AI
关于 AI 治理与监管的速成课——在法律和你自身的责任迎头赶上之时,打造你能站得住脚的 AI。风险分级、EU AI Act 的轮廓、文档与 audit trail、人类问责的缺口,以及透明度与负责任的 AI。每一项都配一幅朴素的画面、一个具体例子,以及恰当的那个词。只讲精髓:治理大多并不光鲜,却是可以做到的——知道你在哪里属于 high-risk,展示它如何决策,并让一个人保持可问责。(非法律建议。)
- 中级~25 分钟阅读
没有评测,你就是凭感觉调参
评测 AI 系统的速成课——为什么一个非确定性组件需要测试套件、该测什么、怎样构建评测集、如何打分(包括 LLM-as-judge)、面向 agent 的步骤级评测、离线评测与在线评测,以及怎样把它做好。每一点都配一幅画面、一个具体例子,以及何时该用。只讲精髓:你无法改进你不去度量的东西,而做到 95% 才是大部分的活儿。
计算机基础
每位工程师都该掌握的基石。
- 入门~25 分钟阅读
网络究竟是怎么对话的
关于网络与 Web 的速成课——机器如何彼此找到对方并交换消息,从 DNS、IP 到 TCP、HTTP 和 HTTPS。每个想法配一幅朴素的画面、一个具体的例子,再加上对的那个词,让那些术语终于豁然开朗。只讲精髓:每一次页面加载都是一场对话,一旦你懂了这些词,它就不再是魔法。
- 入门~25 分钟阅读
合适的形状让难题变简单
关于 data structure 与 Big-O 的速成课——组织数据,让你最常做的操作变快,以及谈论速度时使用的记号。Big-O、array、hash map、stack 与 queue、tree 与 graph。每一个都配一幅朴素的画面、一个具体的例子,以及正确的术语。只讲精髓:选对结构往往就是「瞬间完成」和「慢到无法忍受」之间的全部差别,而 Big-O 让你提前看见它的到来。
- 中级~25 分钟阅读
同时做很多事
讲 concurrency 与 async 的速成课——是在多个任务间来回切换,还是真的让它们 parallel 地一起跑、thread 与 process、blocking 与 async 以及 event loop、race condition、lock 与 deadlock,还有像 message passing 这样更安全的模式。每一个都配一幅朴素的画面、一个具体的例子,以及那个准确的词。只讲精髓:同时做很多事是软件保持快的方式,而所有这些 bug 都来自同一件事——两份工作在同一时刻碰了同一份数据。
- 入门~25 分钟阅读
凡是能记住的,就别再算一遍
关于 cache 的速成课——把答案放在近处,省得把活儿重做一遍,从浏览器和 CDN 到内存存储再到 CPU。命中与未命中、hit ratio、TTL 与陈旧、失效与淘汰,以及像 stampede 这样的陷阱。每一项配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:cache 是计算里最大的提速诀窍,而让它保持新鲜是它最难的问题。
- 中级~25 分钟阅读
留个 message,别等
关于 queue 和事件驱动系统的速成课——为什么一个服务应该丢下一条 message 而不是调用另一个服务并干等。producer 与 consumer、broker、pub/sub、event 与 command 的区别,它换来的韧性与扩展能力,以及随之而来的新难题,比如重复和顺序。每个都配一幅朴素的画面、一个具体例子和恰当的术语。只讲精髓:在时间上解耦工作,正是系统保持快速并在故障中存活的方式。
- 中级~25 分钟阅读
先测量,再让它变快
关于性能的速成课——为什么要先测量再优化,到底是什么让软件变慢,以及如何不靠猜就把它修好。latency 与 throughput、找到 bottleneck、现实里最大的几类提速、tail latency 与 percentile,以及 premature optimization。每一项配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:对慢的直觉通常是错的,所以去 profile,修掉那一个占大头的东西,然后再测一遍。
- 中级~25 分钟阅读
看不见,就修不了
关于 observability 的速成课——一个运行中的系统如何通过 logs、metrics 和 traces 告诉你它在做什么。三大支柱、每一个分别回答什么问题、four golden signals、alerting 与 SLO,以及如何在不被噪声淹没的前提下做好埋点。每一点配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:在生产环境里你没法挂上 debugger,所以你要把系统建成会自己解释自己的样子。
- 中级~25 分钟阅读
在我机器上能跑,那就把机器一起发出去
关于 CI/CD 与容器的速成课——把从开发者笔记本到生产环境的整条路自动化,并把应用打包成在任何地方都跑得一模一样的东西。continuous integration、continuous delivery、pipeline、容器与 image、orchestration,以及 canary、rollback 这类安全的 deploy 方式。每个概念配一幅朴素的画面、一个具体的例子和一个准确的术语。只讲精髓:交付软件本该是无聊的、自动化的、处处一致的。
- 入门~25 分钟阅读
测试是你无所畏惧地修改代码的方式
关于 testing 的速成课——用代码来检查你的代码,以及它真正划算的原因:让你明天能够改动东西,而不破坏今天还在正常工作的部分。unit test、integration test 和 end-to-end test,test pyramid,mock 和 stub,TDD,coverage,以及 flaky test。每个都配一幅朴素的画面、一个具体的例子和那个正确的词。只讲精髓:测试的意义不在于一次性证明正确,而在于无所畏惧地修改的自由。
- 入门~25 分钟阅读
永远不要信任输入
关于 Web 安全基础的速成课——为什么几乎每一个漏洞都源于信任来自外部的数据。injection 与 SQL injection、cross-site scripting、CSRF、对密码做 hashing、least privilege 以及 defense in depth。每个主题配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:在被证明安全之前,把一切外部输入都当作有敌意的,并掌握那几种经典攻击——忘记这条规则的人都会被它们惩罚。
- 入门~25 分钟阅读
cloud 就是别人的电脑
关于 cloud 计算与 serverless 的速成课程——租用电脑而不是购买,并且只为你实际用到的部分付费。讲清服务模型(IaaS、PaaS、SaaS)、elasticity 与 pay-as-you-go、region 与 availability、managed service,以及 serverless。每个概念都配一幅朴素的画面、一个具体的例子,再加上那个准确的词。只讲精髓:cloud 不是个时髦词,而是 on-demand 地租用算力——是在便利、控制与成本之间一组清晰的取舍。
- 入门~25 分钟阅读
Git:有记忆的保存按钮
关于 Git 与版本控制的速成课——记录项目的每一个版本,让团队协作时不会互相覆盖。commit 与 staging area、branch、merge 与 conflict、remote 与 push/pull,外加撤销、history 与 rebase。每一项都配一幅朴素的画面、一个具体的例子和一个准确的词。只讲精髓:围绕 Git 的恐惧大多只是因为词陌生——学会它们,它就变成一张让你安心的安全网。
- 入门~25 分钟阅读
你是谁,又被允许做什么?
速成课,讲身份认证与授权——证明身份(密码、MFA、passkey)、保持登录状态(会话 对上 JWT)、委托访问(OAuth2、OIDC、API key)、权限模型(默认拒绝、RBAC、ABAC、归属)、auth 常见的崩坏方式,以及如何把它做对。每一个都配一幅画面、一个具体例子。只讲精髓:标准重于自造。