跳转到内容

工程基础

这组笔记从计算机怎样运行讲到软件怎样上线,最后再进入模型、检索和 Agent。内容按问题之间的联系组织:先建立底层概念,再学习开发工具、浏览器、后端、数据、架构、部署和工程素养,最后理解模型系统。

这些内容不按“AI 应用”另立一套。写代码的人或工具会变,但需求、接口、数据、并发、权限和交付的约束不会变。模型也运行在操作系统里,通过 HTTP 接收请求,用数据库保存状态,靠缓存、队列和限流承受流量,同样必须测试、监控、回滚和做权限检查。代码由人写还是由工具生成,只改变实现方式和速度,不改变这些底层问题。

学习技术时最容易出现两种断层:

  1. 只会调用框架,遇到进程、网络、数据库或部署问题就不知道从哪一层排查。
  2. 记住了大量名词,却没有把概念串成一条可复述的链路。

这组笔记尽量每页都按同一个顺序展开:

这个东西是什么
↓
它为什么存在,解决什么问题
↓
它在整条链路中的位置
↓
关键机制与常见取舍
↓
出错时怎样判断,怎样验证

不会为了显得完整而保留产品广告、重复命令、动画演示和课程化铺垫;也不会只给一张结论表。一个概念第一次出现时会先解释,再进入用法。

章 主题 主要内容
1 计算机系统 硬件、操作系统、编码、网络、数据结构、语言与编译
2 开发工具 Shell、PATH、依赖、端口、SSH、Git、IDE、调试、正则
3 浏览器与前端 HTML/CSS、JavaScript、TypeScript、渲染、框架、状态、构建、性能
4 服务器与后端 HTTP、API、鉴权、并发、缓存、队列、语言、分层与项目结构
5 数据 数据库、SQL、索引、事务、数据模型、指标、实验与治理
6 架构与系统设计 分布式系统、CAP、一致性、高可用、微服务与容量估算
7 基础设施与运维 Linux、容器、Kubernetes、CI/CD、网络、云、安全、可观测性
8 模型系统 神经网络、Transformer、多模态、RAG、Agent、模型部署与评测
9 工程素养 代码质量、重构、测试、设计模式、安全、许可、选型与写作

如果希望先建立整体框架,可以读从需求到稳定运行:工程全景。它用一个“学习资料收藏夹”案例,把环境、浏览器、后端、数据、架构、部署、模型和工程交付串成同一条请求链路,并给出接口、表结构、故障分析和测试示例。看完再回到各章补概念,会更容易知道每个知识点在系统中的位置。

如果是第一次系统补基础,按 1 → 2 → 3 → 4 → 5 → 6 → 7 → 9 → 8 读。先知道程序怎样运行、修改怎样进入版本库、请求怎样穿过前后端、数据怎样落盘,再理解服务变大后的故障和工程约束,最后进入模型与 Agent。模型章放在后面,不是因为它不重要,而是因为它会同时用到前面所有层。

如果当前目标是做一个完整应用,可以从第 2 章开始,完成后端、数据库、部署和测试,再进入前端和模型。遇到问题时回到对应层补概念,不必一次读完全部。

如果当前目标是做模型或 Agent 应用,也不要直接跳到第 8 章。至少先掌握 HTTP、进程与线程、数据库事务、缓存、队列、容器和基本测试。否则很容易把“提示词没写好”“工具超时”“上下文超限”“数据库锁等待”混成同一个问题。

  • 第一遍先读正文,不急着背表格;能用自己的话复述输入、输出、状态和失败方式即可。
  • 第二遍看示例与取舍,问自己“如果流量扩大十倍、依赖变慢、数据不一致,会发生什么”。
  • 做项目时把相关页面当检查表,而不是当答案库。先写下当前约束,再选工具。
  • 复习时只看标题和每节开头的结论,遇到讲不清的地方再回到正文。

这是个人学习笔记,不是官方文档,也不追求覆盖某个技术的最新 API。版本会变化,概念和判断方法更值得保留。代码示例尽量短,重点是展示数据怎样流动、边界在哪里,以及失败会怎样出现。

部分内容的结构和主题来自公开课程资料,版权与修改说明集中在来源与版权页面。正文只讨论技术本身,不在每篇文章重复来源声明。

  1. 看到一个应用时,能画出浏览器、网络、服务、数据库、缓存和部署环境之间的关系。
  2. 遇到“本地正常、线上失败”时,能按环境、网络、权限、配置、资源和代码逐层缩小范围。
  3. 能设计一组接口和表结构,并说明分页、幂等、鉴权、索引与事务边界。
  4. 能判断一项性能问题发生在加载、计算、内存、磁盘、网络还是排队。
  5. 能为服务设置日志、指标、trace、告警和回滚方案。
  6. 能读懂模型、RAG 和 Agent 系统的完整链路,并知道怎样验证它们,而不是只看演示效果。