入门第 9 / 20 节35 分钟 · 实操
模块(modules)与项目结构
Go 课程的一部分
这门课程里你到目前为止写过的每个程序,都只是一个文件,一条命令就能运行。真实的 Go 项目几乎从来不会一直这么小:代码随着增长会拆到许多文件和文件夹里,其中一部分会被别的程序共用,还有一部分依赖别人写好并发布出来的代码。一旦涉及不止一个文件,三个单文件程序从来不用回答的问题立刻就冒出来了:你自己的一段代码要怎么引用另一个文件夹里的另一段,工具链怎么知道你要用的是别人代码的哪一个确切版本,以及项目里哪些部分可以放心让别的项目伸手进来、哪些是不对外的内部管线。Go 用项目根目录下的一个小文件,加上几条整个生态一眼就认得的文件夹命名约定,把这三件事一并回答了。这一课就是那张地图。
这门课里你一直在每个文件顶上写 package main,却没细究这个词是什么意思。包(package)不过就是一个装着若干 .go 文件的文件夹,这些文件顶上声明的包名相同,并作为一个整体一起编译,就像房子里同一个房间中的每样东西都服务于这个房间唯一的用途,房间外面的人不需要知道里面的家具是怎么摆的。这一课的工作区里,除了 main 之外已经有一个包了:打开 internal/greeter/greeter.go,你会看到它以 package greeter 开头,是一个小而自足、只干一件事的单元,负责提供一句问候。
想在真实环境里学习 Go 模块(modules)与项目结构 吗?
点击下方,立即获得一台预装 Go 的 Linux 主机,跟懂你代码的 AI 导师一起完成 模块(modules)与项目结构 的实操练习。
开始这节课模块(modules)与项目结构你将学到什么
- Go mod init
- Go.mod and go.sum
- Import paths
- Package vs module
- Internal/ folder
- Cmd/ layout
- Go mod tidy
用你的语言阅读本课
本课程的所有课时
20 节- 1你好,Go25 分钟
- 2变量与类型25 分钟
- 3控制流:if 与 for30 分钟
- 4函数30 分钟
- 5切片(slices)与映射(maps)35 分钟
- 6结构体(structs)与指针(pointers)35 分钟
- 7方法(methods)与接口(interfaces)35 分钟
- 8错误处理35 分钟
- 9模块(modules)与项目结构35 分钟
- 10迷你 CLI 综合项目40 分钟
- 11标准库之旅40 分钟
- 12测试与基准测试(benchmarks)40 分钟
- 13协程(goroutines)与通道(channels)40 分钟
- 14并发模式45 分钟
- 15泛型(generics)35 分钟
- 16HTTP 服务器45 分钟
- 17使用 database/sql 的数据库45 分钟
- 18性能与分析40 分钟
- 19Go 语言中的设计模式40 分钟
- 20部署与生产45 分钟
探索其他课程
Python
19 节 · 9.3小时
React
17 节 · 10.2小时
Linux
17 节 · 8.5小时
Docker
13 节 · 6.6小时
Git
13 节 · 5.9小时
Kubernetes
14 节 · 8小时
Ansible
12 节 · 6.1小时
Bash
12 节 · 5.7小时
Helm
10 节 · 5.4小时
GitLab CI
11 节 · 5.8小时
Jenkins
11 节 · 5.3小时
PostgreSQL
14 节 · 7.6小时
MySQL
13 节 · 6.8小时
Web
14 节 · 5.9小时
TypeScript
18 节 · 7.7小时
Vibe Coding
12 节 · 5.8小时
Prompt Engineering
11 节 · 6.2小时
Vibe 编程:基础
12 节 · 4.5小时
Vibe 编程:从原型到生产
12 节 · 5.5小时
Vibe 编程:多智能体工程
12 节 · 5.3小时
Vibe 编程:高级工程
12 节 · 7.3小时
