Golang 应用脚手架
Nunu 提供了全面的文档和示例,帮助你快速入门。它还包括一套测试套件,确保你的应用程序按预期工作。
安装要求
要使用 Nunu,你需要在系统上安装以下软件:
- Golang 1.16 或更高版本
- Git
- MySQL 5.7 或更高版本(可选)
- Redis(可选)
安装
你可以通过一行命令安装 Nunu:
|
1
|
go install github.com/go-nunu/nunu@latest |

创建新项目
你可以使用以下命令创建一个新的 Golang 项目:
|
1
2
3
|
nunu new projectName// ornunu new projectName -r https://github.com/go-nunu/nunu-layout-advanced.git |
效果预览:

此命令将创建一个名为 projectName 的目录,并在其中生成一个优雅的 Golang 项目结构。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
.├── cmd│ ├── job│ ├── migration│ └── server│ ├── wire│ │ ├── wire.go│ │ └── wire_gen.go│ └── main.go├── config│ ├── local.yml│ └── prod.yml├── deploy├── internal│ ├── dao│ │ ├── dao.go│ │ └── user.go│ ├── handler│ │ ├── handler.go│ │ └── user.go│ ├── job│ │ └── job.go│ ├── middleware│ │ ├── cors.go│ │ ├── jwt.go│ │ ├── log.go│ │ └── sign.go│ ├── migration│ │ └── migration.go│ ├── model│ │ └── user.go│ ├── provider│ │ └── provider.go│ ├── server│ │ └── http.go│ └── service│ ├── service.go│ └── user.go├── pkg│ ├── config│ ├── helper│ ├── http│ └── log├── script├── storage├── test├── web├── LICENSE├── README.md├── README_zh.md├── go.mod└── go.sum |
这是一个经典的Golang 项目的目录结构,包含以下目录:
cmd:存放命令行应用的代码,例如main.go。config:存放配置文件,例如config.yaml。-
internal:存放项目内部的代码,不对外暴露。dao:存放数据访问对象(Data Access Object)的代码。handler:存放 HTTP 请求处理器的代码。middleware:存放 HTTP 中间件的代码。model:存放数据模型的代码。provider:存放依赖注入的代码。server:存放 HTTP 服务器以及路由注册的代码。service:存放业务逻辑的代码。
-
pkg:存放可重用的代码,对外暴露。config:存放读取配置文件的代码。helper:存放辅助函数的代码。http:存放 HTTP 相关的代码。log:存放日志相关的代码。
创建组件
你可以使用以下命令为项目创建 handler、service 和 dao 等组件:
|
1
2
3
4
|
nunu create handler usernunu create service usernunu create dao usernunu create model user |
这些命令将分别创建一个名为 UserHandler、UserService、UserDao 和 UserModel 的组件,并将它们放置在正确的目录中。
启动项目
你可以使用以下命令快速启动项目:
|
1
|
nunu run |
此命令将启动你的 Golang 项目,并支持文件更新热重启。
编译 wire.go
你可以使用以下命令快速编译 wire.go:
|
1
|
nunu wire |
此命令将编译你的 wire.go 文件,并生成所需的依赖项。
许可证
Nunu 是根据 MIT 许可证发布的。有关更多信息,请参见 LICENSE 文件

浙公网安备 33010602011771号