跳转至

Go 后端 + AI 应用学习讲义

更新时间:2026-03-21

本文档由gpt5.4收集资料总结而成,仅供本人阅读方便使用。

先读这页

1. 这份讲义是什么

这份讲义要承担的是“教材”的职责,而不是“目录”或“收藏夹”的职责。

也就是说,你在这里读到的内容,不应该只是:

  • 有哪些概念
  • 有哪些链接
  • 有哪些框架

而应该是:

  • 这个概念到底是什么
  • 为什么需要它
  • 不这样做会出什么问题
  • 它在真实工程里通常怎么落地
  • 面试时应该怎么把它讲清楚

如果你把它当教材来读,正确的期待不是“把所有东西背下来”,而是逐步建立三层能力:

  1. 先听懂概念。
  2. 再能解释设计原因。
  3. 最后能把它变成工程判断。

2. 如果你几乎零基础,先抓住这条主线

很多人一上来就被名词压住,例如 goroutinecontext、RAG、Tool Calling、MCP、Agent、trace。其实更稳的办法不是先背名词,而是先抓住整条学习主线:

第一层:Go 基础

这一层解决的是“你能不能把程序里的数据和控制关系写明白”。

你会学到:

  • 数据怎么表示,例如结构体、slice、map
  • 状态怎么修改,例如值语义和指针语义
  • 错误怎么返回和包装
  • 并发怎么启动、同步、停止

如果这一层不稳,后面所有后端和 AI 话题都会悬空。因为你连“数据有没有共享”“请求有没有取消”“错误有没有保留下文”都讲不清。

第二层:Go 后端工程

这一层解决的是“一个请求怎么稳定地从入口走到出口”。

你会学到:

  • HTTP 请求怎么进入服务
  • 数据库连接怎么管理
  • 中间件、日志、测试、可观测性怎么组织
  • 服务关闭时在途请求和后台 worker 怎么收尾

如果这一层不稳,AI 功能接进来以后,只会把不稳定放大。

第三层:AI 应用工程

这一层解决的是“怎么把模型这种不稳定、昂贵、不可完全信任的能力,变成可控的业务能力”。

你会学到:

  • prompt 在系统里到底扮演什么角色
  • 为什么要结构化输出
  • 为什么 Tool Calling 本质上是后端工作流
  • RAG 为什么不是“把文档贴给模型”
  • Agent 为什么真正难在治理,而不难在喊口号

你可以先把这个岗位理解成一句话:

它不是“研究模型的人”,而是“把模型能力接进业务系统、并且把风险兜住的人”。

3. 这份讲义默认怎么解释术语

为了让这份材料更接近教材,而不是术语表,后面遇到重要概念时,会尽量遵循这几个约定:

先用人话,再用术语

例如:

  • struct 可以先理解成“带名字的字段集合”
  • interface 可以先理解成“对外承诺自己会哪些行为”
  • RAG 可以先理解成“先找资料,再让模型回答”
  • Tool Calling 可以先理解成“模型提建议,服务端掌执行权”

这不是在降低标准,而是在先建立正确心智模型。

先讲问题,再讲方案

如果一开始就抛方案名词,学习者很容易只记住名字,记不住边界。

例如讲 context 时,真正先要回答的问题是:

  • 请求为什么需要被取消
  • 客户端断开后,下游为什么还要停
  • 超时为什么不能只在入口层写一个数字

先明白问题,再学方案,知识会更牢。

先讲最小闭环,再讲扩展框架

这份讲义不会把学习顺序设计成“先看最火的框架”。更稳的路线是:

  1. 先理解最小原理。
  2. 再理解标准做法。
  3. 最后再理解框架帮你省了什么。

这样你不会把“会用框架”误当成“理解系统”。

4. 推荐的阅读方法

如果你想把这份教材读扎实,而不是读完就散,建议按四遍来用:

第一遍:只建立地图

目标不是记细节,而是知道每一章在解决什么问题。

例如:

  • Go 基础在解决数据和控制的基本语义
  • Go 后端工程在解决请求链路和服务稳定性
  • AI 应用工程在解决模型不确定性
  • RAG/Tool Calling 在解决“怎么查、怎么调、怎么控”

第二遍:每章都做最小复述

每读完一节,用自己的话回答三个问题:

  1. 这节在解决什么问题?
  2. 为什么需要这个设计?
  3. 不这样做会怎样?

如果你答不出来,说明还没真正吸收。

第三遍:和项目主线绑定

把章节知识往一个主项目上挂。例如企业知识库问答系统:

  • Go 基础对应数据结构、错误处理、并发
  • 后端工程对应 HTTP、数据库、日志、测试
  • AI 工程对应模型接入、结构化输出、流式
  • RAG 对应文档解析、切块、召回、引用

当知识能落到同一个项目里,它才开始从“知道”变成“会用”。

第四遍:按面试表达回收

这一遍不要再问“我记住了吗”,而要问:

  • 我能不能在 2 分钟里讲清一个概念
  • 我能不能把一个方案的优点、代价、失败方式说完整
  • 我能不能从业务目标一路讲到系统链路和风险控制

这一步做完,教材才真正转化成面试能力。

5. 这份讲义最适合什么读者

它最适合下面这类人:

  • 已经确定目标是 Go 后端或 Go 后端 + AI 应用岗位
  • 不想只看零散链接,而想按主线系统学习
  • 希望学的是工程落地,而不是只会讲概念

它不以模型训练、算法论文和底层推理加速为主线。如果你的目标是算法研究或模型训练,这份讲义不是主教材。

6. 资料来源与时间边界

这份讲义不是拍脑袋整理的,而是基于官方文档、协议规范、SDK、开源项目 README 与关键代码路径,以及公开面试题中的高频问法来重组。

重点包括:

  • Go 官方关于 context、memory model、race detector、module layout、database/sqlnet/httppproflog/slog 的文档和文章
  • OpenAI 官方关于 Responses API、Function Calling、Streaming、Conversation State、Prompt Caching、File Search、Evals、Tracing、MCP、Agents、Using tools、Background mode 等资料
  • pgvector、MCP 官方规范以及多类 Go / Agent / MCP 开源项目的 README 和关键代码路径
  • 公开面试题与八股文章中的高频问法,但只把它们当作题型来源,不直接拿来当事实结论

这意味着:

  • 知识结论尽量回到一手资料
  • 版本、接口、框架成熟度这类信息会带上时间边界
  • 真正需要谨慎的地方,会强调“这是工程判断”,而不是“永远不变的教条”

7. 编写说明

这份讲义是在原始学习提纲基础上重写而成,目标是把“链接清单 + 面试要点”变成一份可以直接阅读学习的教材。原始提纲和链接清单已单独保留,当前正文负责承担三件事:

  1. 把概念讲明白。
  2. 把工程主线串起来。
  3. 把学习内容回收到项目和面试表达中。