跳到正文

Go 后端八股 ​

面向 Go 全栈 / 后端日常实习。整理日期:2026-10-31。

每篇包含一句话回答、原理、场景边界、项目关联、常见追问和官方资料。语言语义与运行时实现分开记,涉及实现细节时先说明版本。数据库、网络主笔记维护在公共基础,通过链接复用。

怎么复习 ​

  1. 先过 P0:合上笔记口述 30~60 秒,再解释一个反例。
  2. 再练代码:独立写切片输出题、channel 退出、有界并发和事务失败处理,说明边界。
  3. 最后过 P1:从慢请求、内存增长、消息重复等现象讲排查与取舍。
  4. 沿项目链接核对源码和真实分工;关联项目只是复习入口,未验证的实现和收益不能写成个人成果。

状态统一保留“未准备”,掌握后本人更新;补齐资料不等于完成复习。

知识索引 ​

优先级知识点状态关联项目 / 场景下次复习
P0类型、指针与值传递未准备通用基础待安排
P0数组、切片与字符串未准备消息与媒体缓冲区待安排
P0map 原理与并发安全未准备在线连接表待安排
P0接口、方法集与 nil未准备SimulSpeak provider待安排
P0defer、错误处理与 panic未准备请求和资源清理待安排
P0goroutine 与 GMP 调度未准备两个 Go 项目待安排
P0channel、select 与退出未准备消息与流式管线待安排
P0锁、原子操作与内存模型未准备共享会话状态待安排
P0context、超时与取消未准备AI 与数据库调用待安排
P0HTTP 服务与中间件未准备两个 Go 项目待安排
P0鉴权、JWT 与接口安全未准备EinoTalk待安排
P0SQL、索引与执行计划未准备EinoTalk MySQL待安排
P0事务、MVCC 与锁未准备MySQL;SQLite 须另核对待安排
P0数据库连接池与 GORM未准备EinoTalk待安排
P0Redis 数据结构与缓存未准备EinoTalk待安排
P0常见手写题与并发练习未准备通用基础待安排
P1GC、逃逸分析与内存未准备长连接与流式数据待安排
P1Redis 原子性与分布式锁未准备EinoTalk 路由清理待安排
P1消息队列、幂等与一致性未准备EinoTalk Kafka待安排
P1测试、pprof 与故障排查未准备两个 Go 项目待安排
P1TCP、HTTP 与长连接未准备WebSocket / 流式响应待安排
P1进程、线程与 IO 多路复用未准备Go 网络服务待安排

自测标准 ​

  • 原理题:能说机制、条件与反例,不背固定扩容倍数、固定线程数等实现口诀。
  • 并发题:说明谁创建、谁关闭、谁等待,错误如何传播,最大在途任务数是多少。
  • 数据题:区分事务、缓存、消息队列的保证,解释进程在任意一步退出会怎样。
  • 排障题:先给观测证据,再提假设、验证和回滚;性能收益须实测。
  • 按 JD 后续扩展:Linux 实操、容器部署、gRPC、etcd/Raft、分库分表。

理解机制,讲清取舍,用复盘检验掌握。