HOW - Go 开发入门(一)

文章目录

Go 上手快、生态成熟,而且特别适合有前端/工程经验的人,能很快做出"能跑的应用"。从今天开始,我们来一步步学习 Go 并进行实践。

一、建立正确认知

Go 是什么 & 不是什么?

Go 的核心特点:

  • 简单(语法比 TS / Java / Rust 都少)
  • 原生并发(goroutine + channel)
  • 编译快、部署简单(一个二进制)
  • 非常适合:后端 API / 工具 / 微服务 / CLI

二、最佳学习路径

按"快速开发应用"的目标设计:

第 1 步:搞定基础语法

只需要掌握这些:

  • 基本类型 / struct
  • 函数
  • map / slice
  • error 处理(Go 核心)
  • interface(理解即可)

推荐资料:

  • A Tour of Go(只做前半部分)

重点不是记语法,而是理解:

Go 的代码长这样:

go 复制代码
func main() {
    fmt.Println("hello world")
}

第 2 步:直接上 Web

别刷题,直接写 API。用:Gin 或 Kratos。

示例(一个接口):

go 复制代码
r := gin.Default()

r.GET("/hello", func(c *gin.Context) {
    c.JSON(200, gin.H{
        "message": "hello world",
    })
})

r.Run()

启动:

复制代码
go run main.go

浏览器访问:

复制代码
http://localhost:8080/hello

到这里,已经完成:

"从 0 到一个后端服务"

第 3 步:接数据库

用 ORM:比如 GORM。

go 复制代码
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})

type User struct {
    ID   int
    Name string
}

db.Create(&User{Name: "Tom"})

结合 Docker:

可以直接起 MySQL:

复制代码
docker run -d -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql:8

第 4 步:做一个完整小项目(关键)

做这个就够了:一个"用户管理系统 API"。

包含:

  • 登录(JWT)
  • 用户 CRUD
  • 分页
  • 简单权限

技术栈:

  • Gin(Web)
  • GORM(DB)
  • JWT(认证)

第 5 步:加一个 CLI 工具

Go 非常适合写工具!推荐用 Cobra。

比如做:

  • 一个 SQL 生成器(结合你现在做的编辑器)
  • 一个 API mock 工具
  • 一个日志分析工具

第 6 步:理解 Go 的"灵魂"

必须掌握:

goroutine(轻量线程)

go 复制代码
go func() {
    fmt.Println("run async")
}()

channel(通信)

go 复制代码
ch := make(chan int)
go func() {
    ch <- 1
}()
fmt.Println(<-ch)

这是 Go 和 Node 最大差异点。

第 7 步:工程化

学习:

  • 项目结构(cmd / internal / pkg)
  • 配置管理(viper)
  • 日志(zap)
  • 热更新(air)

三、常见坑

不要一开始

  • 学太多语法
  • 研究并发细节
  • 纠结最佳实践

要做

  • 直接写 API
  • 一边写一边查
  • 先跑起来再优化

四、进阶路线

可以再加:

  • Docker + 部署
  • gRPC(微服务)
相关推荐
辛苦才能几秒前
C++多态原理:虚函数表的内存布局与动态绑定的汇编真相
开发语言·c++
铲灰3 分钟前
做个总结而已
开发语言
IvanCodes12 分钟前
Python 文件操作(十二):文件与目录的读写
开发语言·python
右耳朵猫AI13 分钟前
Java周刊2026W38 | Micronaut 修补三漏洞、JDK 27 提速 54%、Jetty 修复抖动测试
java·后端·spring
步行cgn27 分钟前
BeanFactory 与 FactoryBean 的区别:面试深度解析
java·后端·spring
mldong39 分钟前
一套审批流要写多少代码:13 个框架的接入 diff 我数了一遍,最少 422 行,最多 1798 行
后端·架构
神仙别闹8 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
伞伞悦读9 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
GreenTea9 小时前
GrokBot 核心成员 Lauren Tan:每月交付 2000 个 PR 的人,是怎么用 AI 的
前端·后端·架构
码事漫谈9 小时前
FDE:一个缩写,两种命运
后端