1208 字
6 分钟
golang随笔备忘录

背景#

为什么不做前端了?well…这个问题涉及的个人原因有些多,纯技术角度解释也很复杂,可以参考杭电某 wiki,特指其中某句话:

这些概念在不同的语言和框架之间是通用的。而核心的业务逻辑甚至基本可以脱离特定的 Web 框架而存在。你会学习到通用的 “道”,而不是仅仅某一个工具的 “术”。

总之对如今/后来的我,前端已经:不适合,不够擅长,使用范围重合低

为什么是 Go?很多人吐槽其控制流面条,不爽,OOP 弱,ORM 奇怪,巴拉巴拉,xxx

少关注太多别人的见解,每个人有自己的需求立场,不同的立场和角度得到的结论往往差别较大,乃至难以理解。关注自己的需求就好。就这么简单。

web 后端需求+朋友项目+杭州找饭吃+语言生态对我需求便利

看什么:go.dev + pkg.go.dev + 适当 llm + Google

为什么不是各种 blog/教程/视频?

太老/太旧/八股 or 面试题为主/缺乏引导/中文过量/卖课过量/中文圈 go 匮乏/go 特殊性,原因很多

本篇目的?

没有目的,也不是给其它人看的。我的记性很差,故备忘录随笔糊个几下。老实说我已经越来越懒于写 blog 了,意义不足

大纲#

  • Go
  • Docker
  • Kubernetes
  • PostgreSQL
  • Redis
  • Kafka
  • gRPC
  • Prometheus
  • Grafana
  • OpenTelemetry
  • Gin
  • GORM

阶段 A — 语言基础(语法、模块、并发)#

  • 安装 Go 并运行第一个程序
  • 完成 A Tour of Go(交互式)
    • 文档:https://go.dev/tour/
    • 重点:slices、maps、methods、interfaces、defer、panic/recover
    • 练习:跑完所有章节并做题
  • 阅读 Effective Go(风格)
  • 学习 Go Modules (go mod)
  • 并发基础(goroutine / channel / context)

阶段 B - Web 后端必备(目标:能独立实现 REST API + 数据持久化 + 测试)#

  • 学习标准库 HTTP(优先)
    • 文档:https://pkg.go.dev/net/http
    • 练习:实现最小 HTTP server(路由、JSON I/O、日志 middleware、graceful shutdown、请求超时与 context)
  • JSON 编码/解码与请求处理
  • 可选:用轻量框架重写(对比实现)
  • 数据库基础(以 PostgreSQL 为推荐)
  • 可选 ORM(理解其代价)
  • 并发模式与后台任务
    • 练习:实现异步任务(邮件/图片处理)、保证安全关闭与没有 goroutine 泄露
  • 测试(单元/集成)与基准
  • 性能剖析(pprof)

阶段 C — 工程化与生产能力(目的:把服务做成可运维的系统)#

随笔#

Go 的 gc 和内存自动管理,导致 runtime 停机时间不可测,使得其无法做硬实时平台,与 java 和 py 类似

每个 go 项目为一个 module,每个 module 下,通常按惯例,每个 directory=package=library,package(except main)/lib can be imported by others who can access the module.others can use the func of the pack, like fmt.Println().

btw, in “import” process, the statement like “math/fmt”,it means the pack u import is “fmt”,like:

math/rand -> rand

net/http -> http

and,module is unique. eg: github.com/gin-gonic/gin . it represent “module path + directory”

module
├─ directory
│ └─ package
├─ directory
│ └─ package
└─ directory
└─ package

the pack/dirc is a kind of “namespace”.

蚌,发现自己 en 讲比 cn 貌似还顺畅些。

golang随笔备忘录
https://mias.moe/posts/golang-learn-tour/
作者
Asperfor Mias
发布于
2026-03-09
许可协议
CC BY-NC-SA 4.0