本文会演示简单的Go软件包的开发过程,并介绍了go
命令行工具,这是我们获取,构建和安装Go软件包和命令的标准方法。
go工具要求你以特定方式组织代码。我们会介绍Go安装启动和运行的最简单方法,一定要仔细阅读啊。
组织代码结构
概要
- Go 程序员一般会将他们的源代码存放在一个工作区中(多个项目放在一个工作区)
- 工作区中包含许多由 git 管理的代码仓库(也可以是其他版本控制工具管理的)
- 每个代码仓库包含一个或者多个 Go package
- 每个 package 由单一目录下的一个或多个Go 源码文件组成
- package 的目录路径决定了其导入路径
与其他编程语言不同的是,在其他编程语言里每个项目都有自己的工作区,并且工作区都与版本控制系统紧密相关。
工作区
工作区是一个目录层级,这个目录层级在顶层有两个目录:
src
目录,存放源代码文件。bin
目录,存放可执行二进制文件。
go
命令工具会把src
中的Go 文件构建生成二进制文件放在bin
目录中。
src
子目录通常包含用 git 管理的多个代码仓库,他们对应一个或多个Go 包的开发源码。
一个典型的工作区中会包含多个源码仓库,对应多个可执行命令源码和包源码。大多数 Go 程序员会把他们的Go 源码和所有依赖的包都放在单一的工作区中。
下面的例子可以让你更好的了解Go 的工作区大概的样子:
bin/
hello # 可执行命令文件
outyet # 可执行命令文件
src/
github.com/golang/example/
.git/
hello/
hello.go # 命令文件源码
outyet/
main.go # 命令文件源码
main_test.go # 测试文件
stringutil/
reverse.go # package源码
reverse_test.go # 测试文件
golang.org/x/image/
.git/
bmp/
reader.go # package 源码
writer.go # package 源码
......
上面的目录树展示了工作区中的两个代码仓库(example 和 image)。example 仓库中包含两个命令hello 和 outyet(hello 和 outyet 目录中存放的就是两个命令的源码)一个被用作库的 package - stirngutil
。image仓库中