好久没写 golang 的项目了,前两天接个临时需求,需求不难,但要求必须用golang来写。一时间竟然忘了如何开始,从哪入手了,故在此做个记录,以备不时之需。
- 环境: MacOS
- IDE:GoLand
项目路径
为了便于管理和引用其他 package,一般放在/{GOPATH}/src
下。在该目录下,创建一个公司域名的文件夹,在此文件夹下创建项目命名的文件夹,如/{GOPATH}/src/domain.com/project_name/
。项目结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17project_name/
|__bin/
|__build/
|__config/
|__cmd/
| |__service_1/
| |__service_1.go
| |__service_2/
| |__service_2.go
|__docs/
|__Godep/
|__pkg/
| |__lib/
| |__...
| |__...
|__resource/
|__vendor/
- bin/:编译后的二进制文件
- build/:编译、构建脚本文件
- config/:配置文件,json/yaml等
- cmd/:所有服务
- cmd/service_1/:某个具体的服务
- cmd/service_1/service_1.go:服务入口
- docs/:文档
- Godep/:godep 自动生成的目录
- pkg/:主要代码
- resource/:资源
- vendor/:godep 自动生成的目录
godep
包依赖管理工具,使每个项目的依赖的版本相互独立。在项目根目录下执行godep save ./cmd
,自动生成 Godep 和 vendor。
大致,就这些。