golang-intro · cover
</>
低配全栈
dpfs.dev

go version

GO 语言
入门介绍

从 Hello, World 到并发思维。用一份 8 页的技术分享,快速理解 Go 为什么适合做后端服务、CLI 工具和云原生应用。

static-typing single-binary goroutines cloud-native

软件工程 / 计算机相关课程分享

开场先给听众建立预期:这不是高级性能调优分享,而是帮助第一次接触 Go 的同学迅速看清语言定位、开发流程和学习路径。
section · why-go
</>
低配全栈
dpfs.dev

cat agenda.md

// 为什么先学 Go

如果目标不是“炫技”,而是尽快写出结构清晰、可以交付的程序,Go 往往是一条很短的路径。

这一页只做章节切换。可以顺手告诉听众,Go 的设计重点不是“语言特性越多越好”,而是“团队协作时尽量减少歧义”。
value · onboarding
</>
低配全栈
dpfs.dev

Go 的四个入门友好点

先抓住语言的价值主张,再学语法细节。Go 更像一套工程化选择,而不只是另一门语法。

01 · syntax
语法克制
关键字不多,风格统一,代码审阅时大家看到的结构更接近。
02 · build
编译部署直接
常见交付形态是单个可执行文件,适合服务、CLI 和容器镜像。
03 · stdlib
标准库够强
net/httpjsoncontexttesting 已经覆盖了大量基础工作。
04 · concurrency
并发是内建概念
goroutinechannelselect 让并发任务拆分和通信更自然。

适合:后端服务、微服务、网关、中间件、运维工具。不必强求:重前端交互、极度依赖动态元编程的场景。

这一页不要讲太细,目的是让听众知道 Go 的优势主要落在“团队效率”和“服务交付”,而不是语言花样。
hello.go · quick-start
</>
低配全栈
dpfs.dev

go run .

第一段 Go 程序

# hello-go/main.go
package main

import "fmt"

func main() {
    name := "低配全栈"
    fmt.Printf("Hello, %s and Go!\n", name)
}

# 常用起步命令
$ go mod init hello-go
$ go run .
$ go fmt ./...
$ go test ./...
看懂这段代码,先抓三件事
package main 表示可执行程序;func main() 是入口;导入包后直接调用标准库函数。
学习顺序
先能跑起来,再补变量、函数、结构体、切片和错误处理,不要一开始陷进框架细节。
可以现场强调,Go 的学习门槛不在“写出第一段代码”,而在“把工程习惯一起养成”。所以把 go fmt / go test 一起给出很重要。
concurrency · mental-model
</>
低配全栈
dpfs.dev

并发思维:任务拆分、通信、取消

不要把 Go 的并发只理解成“开线程”。更重要的是,如何把任务拆开,让数据安全地流动起来。

main() 发起请求 / 控制整体流程 go fetchUser() 独立 goroutine go fetchOrder() 独立 goroutine results chan 用 channel 汇总结果 select 等待谁先完成 配合 context 可以超时、取消、兜底

关键词:goroutine 负责并发任务,channel 负责通信,select 负责多路等待,context 负责生命周期控制。

讲并发时别把重点放在底层调度器实现,先让听众建立“任务 - 通信 - 取消”这个应用层心智模型。
engineering · defaults
</>
低配全栈
dpfs.dev

go toolchain

4 habits

把下面四条变成默认动作,你写出来的 Go 代码就已经有了“工程感”。

01 · formatting
先跑 go fmt,统一风格。Go 社区默认不鼓励在格式化上消耗团队讨论成本。
02 · testing
go test ./... 建立最基本的回归保护。哪怕先只写最核心的 happy path 也值得。
03 · dependency
go mod 管依赖,学会读 go.mod。依赖关系清楚,项目迁移和 CI 会轻松很多。
04 · interfaces
errorcontext、接口边界写清楚,很多代码组织问题会自然变简单。
这里强调“Go 的门槛不是语法,而是工程习惯”。这也是它适合课堂项目和团队入门的原因之一。
roadmap · 7-days
</>
低配全栈
dpfs.dev

一周入门路线

按“能跑起来 -> 能写结构 -> 能做小项目”的顺序推进,比零散刷语法更有效。

# Day 1  环境安装 + 变量 / 函数 / 包
# Day 2  array / slice / map + if / for / switch
# Day 3  struct / method / interface / error
# Day 4  goroutine / channel / select / context
# Day 5  go mod / go fmt / go test / 常见项目结构
# Day 6  写一个简单 HTTP API 或命令行工具
# Day 7  复盘并阅读标准库与优秀开源项目
go.dev/tour pkg.go.dev gobyexample.com github.com/golang-standards/project-layout
最后给出可执行学习路线,减少听众“听懂了但不知道下一步做什么”的落差。资源只给最基础、最稳定的几项即可。
EOF · build-your-first-service
</>
低配全栈
dpfs.dev

go build future

// 开始写第一个 Go 服务

最好的入门方式不是继续背概念,而是用 Go 写一个能跑的 CLI 或 HTTP API,把格式化、测试、依赖管理和并发思维一起用起来。

thank-you q-and-a ship-it
结尾把重点收回到“动手”。如果时间允许,可以现场补一句:从一个小工具开始,比一上来写复杂框架更合适。