跳转至

Go后端 + AI应用岗位学习与面试准备文档

更新时间:2026-03-18

一、学习顺序建议

先学 Go 基础,再学 Go 后端工程,再学 AI 应用。Go 基础阶段重点是语法、指针、方法、接口、错误处理、slice 和 map、并发、context;Go 后端阶段重点是 HTTP、数据库、项目结构、日志、配置、测试、性能排查;AI 应用阶段重点是 Prompt、结构化输出、Tool Calling、RAG、流式输出、评测、安全和观测。你现在最缺的是第一层,所以不要急着把精力放在 Agent 框架选型上,先把 Go 的基本功补齐,这样后面学 AI 应用会顺很多。

二、Go 基础需要掌握什么

第一是语法和类型系统,你要熟悉变量声明、常量、基本类型、结构体、方法、接口、指针、数组、slice、map。这里最重要的不是背语法,而是理解值语义和引用语义,例如 slice 为什么像“带长度和容量的描述符”,append 什么时候会导致底层数组变化,map 为什么不能并发写。

第二是错误处理,Go 不鼓励异常式控制流,所以你要习惯显式返回 error,理解 errors.Is、errors.As、errors.Join 这一套错误链能力,面试里很容易问“怎么包装错误”“什么时候该返回原始错误”。

第三是方法和接口,Go 的接口是隐式实现,这点和 Java 不一样,面试里常问“小接口设计”“什么时候用接口,什么时候直接依赖具体类型”“为什么不要为了抽象而抽象”。

第四是并发,这是 Go 的核心。你要会 goroutine、channel、select、mutex、WaitGroup、atomic,还要理解 Go Memory Model,不然很多并发题只能停留在表面。

第五是 context,后端开发里 context 非常重要,必须理解它用来传递取消信号、超时和请求级元数据,不能把它当作全局容器,更不要塞进 struct 长期保存。

三、Go 后端工程要掌握什么

首先是 net/http,因为很多框架本质上都构建在它之上。你需要理解路由、middleware、请求生命周期、超时控制、连接复用、流式响应。

其次是数据库,至少要把 database/sql 的连接池模型搞清楚,知道 MaxOpenConns、MaxIdleConns、ConnMaxLifetime 的意义,知道事务边界和慢查询问题。

第三是项目结构,Go 官方更推荐围绕 module 组织代码,常见实践是 cmd 放入口,internal 放内部实现,按业务和能力拆包,不要迷信花哨模板,也不要上来就过度分层。

第四是测试,最起码要能写单测、表驱动测试、HTTP handler 测试,知道 go test、race detector 的作用。

第五是可观测性,要懂日志、metrics、trace、pprof,不然服务一出问题你就没有排查抓手。

第六是工程 hygiene,包括 gofmt、goimports、go vet、staticcheck 或 golangci-lint、依赖管理、CI 基线、配置管理和环境隔离。

四、AI 应用部分该怎么理解

你可以把 AI 应用看成一种“多了模型推理环节的后端系统”。传统后端是“请求 -> 业务逻辑 -> DB/RPC -> 返回结果”,AI 应用则变成“请求 -> 检索/状态整理 -> prompt 构造 -> 模型推理 -> 可能调用工具 -> 汇总结果 -> 返回”。

面试里最核心的几个概念是:第一,Prompt 只是控制手段之一,不是万能解法;第二,模型输出默认不可信,必须由后端策略层校验;第三,Tool Calling 本质上是后端工作流,不是玩具功能;第四,RAG 不是简单拼接文档,而是完整的检索链路;第五,线上 AI 应用的关键指标是正确率、延迟、成本、可控性和可观测性。

五、Tool Calling 和 Agent 你要怎么准备

你不一定要背很多 Agent 框架,但一定要理解核心循环:模型先判断要不要调用工具,如果要调用,服务端按 schema 校验参数并执行工具,然后把工具结果回填给模型继续推理,直到得到最终答案。

面试中常见追问是:如果模型传错参数怎么办,工具失败怎么办,如何避免无限循环,如何限制危险工具,如何做权限控制,如何记录审计日志。你回答时不要停留在“让模型调用函数”这个层面,要讲成一个安全、可控、可观测的服务端流程。

六、RAG 要掌握到什么程度

RAG 是 AI 应用岗位高频考点,你至少要会解释完整链路:文档清洗、切块、embedding、索引存储、召回、必要时 rerank、上下文拼接、生成答案、附带引用。

面试官经常会问“为什么要切块”“块太大和太小分别有什么问题”“为什么会召回错误内容”“怎么做多租户隔离”“怎么保证引用可信”。

如果岗位偏 Go 后端,比较实用的落地方案是 Postgres 加 pgvector,因为很多团队会优先选这种工程复杂度较低的方案。你不一定要会复杂算法,但要讲清楚链路和取舍。

七、这个岗位最容易问到的系统设计题

第一类是“做一个企业知识库问答系统”,你要从上传文档、解析切块、向量化、索引、查询召回、答案生成、引用展示、权限隔离、更新机制、缓存和监控这些角度讲。

第二类是“做一个能调用业务工具的智能助手”,你要讲 schema 设计、工具白名单、鉴权、重试、幂等、超时、风控和审计。

第三类是“做流式 AI 对话接口”,你要讲 SSE 或 WebSocket、客户端断开后的取消、下游模型流转发、背压和资源释放。

第四类是“怎么评估你的 AI 系统是否真的变好”,你要讲离线数据集、线上指标、trace、人工抽检、回归测试和 A/B 对比。

八、如果你现在基础弱,应该怎么学

先别追求“大而全”,先把最重要的几篇文档啃下来。第一阶段,先学 Effective Go、A Tour of Go、Code Review Comments,把语言和风格补起来。第二阶段,学 context、memory model、race detector,把并发和服务端思维补起来。第三阶段,学 module layout、database/sql、net/http,把后端主线补起来。第四阶段,再去看 Responses API、Function Calling、Streaming、Embeddings、Retrieval,把 AI 应用链路连起来。

你学的时候一定要配合写小项目,不然文档很容易看懂但不会用。最适合你的练手项目是:用 Gin 或 net/http 写一个小服务,接一个数据库,再加一个简单的“文档问答”能力,哪怕先用最朴素的版本也行,这样你的知识会真正串起来。

九、面试时你应该怎么表达

你可以把自己的能力定位成“Go 后端工程师正在向 AI 应用方向延展”,这样很合理。回答问题时尽量遵循一个顺序:先说业务目标,再说系统链路,再说核心设计点,最后说风险和监控。比如问你“怎么做一个 AI 问答系统”,你不要直接聊 prompt,而是先说请求入口、知识检索、模型调用、流式返回、引用、缓存、超时、降级、审计和评测。这样面试官会觉得你是从工程落地角度思考问题,而不是停留在模型试玩层面。

十、推荐文档

下面按“先 Go,后 AI”的顺序排,前 10 个建议优先读。

  • https://go.dev/tour/ Go 官方交互式入门,最适合先补语法、流程控制、方法、接口和并发基础。
  • https://go.dev/doc/effective_go Go 的核心编码习惯文档,帮你建立“Go 应该怎么写”的基本感觉。
  • https://go.dev/wiki/CodeReviewComments 最实用的 Go 工程规范清单,面试里很多细节题都能从这里找到依据。
  • https://go.dev/blog/context 理解 context 的最佳入口,重点看取消、超时和请求链路传递。
  • https://go.dev/blog/context-and-structs 讲清楚为什么 context 不应该放进 struct,是后端面试高频问题。
  • https://go.dev/ref/mem 并发题核心文档,理解 happens-before、可见性和数据竞争。
  • https://go.dev/doc/articles/race_detector.html 学习怎么用 go test -race 发现并发问题,也能帮助你回答排查类面试题。
  • https://go.dev/doc/modules/layout Go 官方的项目结构建议,适合理解 cmd、internal、package 边界。
  • https://go.dev/doc/modules/managing-dependencies 学习 go.mod、go.sum、依赖升级和 tidy 这类工程化基础。
  • https://go.dev/doc/database/ Go 官方数据库入门,适合建立 database/sql、查询、事务的基本心智模型。
  • https://pkg.go.dev/net/http Go 服务端的根基,框架用多了也要回来看标准库本身。
  • https://pkg.go.dev/net/http/pprof 线上性能排查必备,适合补 CPU、内存、阻塞分析的基础认知。
  • https://platform.openai.com/docs/guides/migrate-to-responses 理解当前 OpenAI 推荐的应用接入方式,建立现代 AI 应用接口模型。
  • https://platform.openai.com/docs/guides/function-calling?api-mode=responses AI 应用最核心的文档之一,重点学习工具调用循环和结构化参数约束。
  • https://platform.openai.com/docs/api-reference/streaming 学习流式输出怎么工作,适合对应 Go 后端里的 SSE 和增量返回场景。
  • https://platform.openai.com/docs/guides/retrieval 学习检索增强应用的基础链路,理解向量检索、vector store 和语义搜索。
  • https://platform.openai.com/docs/guides/agent-evals 帮助你建立“AI 应用怎么评估”的意识,适合准备效果验证相关面试题。
  • https://platform.openai.com/docs/guides/trace-grading 学习如何从 agent trace 层面做诊断、回归和质量打分。
  • https://platform.openai.com/docs/guides/agent-builder-safety 重点看 prompt injection、工具滥用、权限边界和高风险操作控制。
  • https://platform.openai.com/docs/mcp/ 理解 MCP 在真实系统里怎么接工具和数据源,现在面试出现频率越来越高。
  • https://modelcontextprotocol.io/specification/draft/basic 如果面试官问到 MCP 协议层,这个文档能帮你讲清客户端、服务端和能力协商。
  • https://github.com/openai/openai-go OpenAI 官方 Go SDK,最适合看 Go 里如何实际发起模型请求、流式接收和处理响应。
  • https://github.com/pgvector/pgvector 如果你想用 Postgres 做向量检索,这是最常见也最值得准备的工程方案之一。
  • https://cloudwego.cn/zh/docs/eino/ 国内 Go 生态里质量比较高的 AI 应用框架资料,适合看 Go 里怎么组织模型、工具和工作流。