Nunu: 助你快速构建高效可靠的Go应用

5,584 阅读4分钟

image.png

Nunu 是一个基于 Golang 的应用脚手架,它的名字来自于英雄联盟中的游戏角色,一个骑在雪怪肩膀上的小男孩。和努努一样,该项目也是站在巨人的肩膀上,它是由 Golang 生态中各种非常流行的库整合而成的,它们的组合可以帮助你快速构建一个高效、可靠的应用程序。

项目主页:github.com/go-nunu/nun…

功能

Nunu 采用了多种流行的库,包括 Gin、Gorm、Wire、Viper、Zap、Golang-jwt、Go-redis、Testify、Sonyflake、robfig-cron 等等。这些库的组合可以帮助你快速构建一个高效、可靠的应用程序。

特性

Nunu 具有以下特性:

  • 超低学习成本和定制:Nunu 封装了 Gopher 最熟悉的一些流行库。你可以轻松定制应用程序以满足特定需求。
  • 高性能和可扩展性:Nunu 旨在具有高性能和可扩展性。它使用最新的技术和最佳实践,确保你的应用程序可以处理高流量和大量数据。
  • 安全可靠:Nunu 使用了稳定可靠的第三方库,确保你的应用程序安全可靠。
  • 模块化和可扩展:Nunu 旨在具有模块化和可扩展性。你可以通过使用第三方库或编写自己的模块轻松添加新功能和功能。
  • 文档完善和测试完备:Nunu 文档完善,测试完备。它提供了全面的文档和示例,帮助你快速入门。它还包括一套测试套件,确保你的应用程序按预期工作。

简洁分层架构

Nunu 采用了经典的分层架构。同时,为了更好地实现模块化和解耦,采用了依赖注入框架 Wire。

layout.png

文档

Nunu 提供了全面的文档和示例,帮助你快速入门。它还包括一套测试套件,确保你的应用程序按预期工作。

要求

要使用 Nunu,你需要在系统上安装以下软件:

  • Golang 1.16 或更高版本
  • Git
  • MySQL 5.7 或更高版本(可选)
  • Redis(可选)

安装

你可以通过一行命令安装 Nunu:

go install github.com/go-nunu/nunu@latest

image.png

创建新项目

你可以使用以下命令创建一个新的 Golang 项目:

nunu new projectName

// or

nunu new projectName -r https://github.com/go-nunu/nunu-layout-advanced.git

效果预览:

此命令将创建一个名为 projectName 的目录,并在其中生成一个优雅的 Golang 项目结构。

.
├── cmd
│   └── server
│       ├── main.go
│       ├── wire.go
│       └── wire_gen.go
├── config
│   ├── local.yml
│   └── prod.yml
├── internal
│   ├── handler
│   │   ├── handler.go
│   │   └── user.go
│   ├── middleware
│   │   └── cors.go
│   ├── model
│   │   └── user.go
│   ├── repository
│   │   ├── repository.go
│   │   └── user.go
│   ├── server
│   │   └── http.go
│   └── service
│       ├── service.go
│       └── user.go
├── pkg
├── LICENSE
├── README.md
├── README_zh.md
├── go.mod
└── go.sum

这是一个经典的Golang 项目的目录结构,包含以下目录:

  • cmd:存放命令行应用的代码,例如 main.go
  • config:存放配置文件,例如 config.yaml
  • internal:存放项目内部的代码,不对外暴露。
    • repository:存放数据访问层的代码。
    • handler:存放 HTTP 请求处理器的代码。
    • middleware:存放 HTTP 中间件的代码。
    • model:存放数据模型的代码。
    • server:存放 HTTP 服务器以及路由注册的代码。
    • service:存放业务逻辑的代码。
  • pkg:存放可重用的代码,对外暴露。
    • config:存放读取配置文件的代码。
    • helper:存放辅助函数的代码。
    • http:存放 HTTP 相关的代码。
    • log:存放日志相关的代码。

创建组件

你可以使用以下命令为项目创建 handler、service 和 repository 等组件:

nunu create handler user
nunu create service user
nunu create repository user
nunu create model user

这些命令将分别创建一个名为 UserHandlerUserServiceUserRepositoryUserModel 的组件,并将它们放置在正确的目录中。

启动项目

你可以使用以下命令快速启动项目:

nunu run

此命令将启动你的 Golang 项目,并支持文件更新热重启。

编译 wire.go

你可以使用以下命令快速编译 wire.go

nunu wire

此命令将编译你的 wire.go 文件,并生成所需的依赖项。

贡献

如果你发现任何问题或有任何改进意见,请随时提出问题或提交拉取请求。非常欢迎你的贡献!

许可证

Nunu 是根据 MIT 许可证发布的。有关更多信息,请参见 LICENSE 文件。

总之,Nunu 是一个非常优秀的 Golang 应用脚手架,它可以帮助你快速构建高效、可靠的应用程序。如果你正在寻找一个优秀的 Golang 应用脚手架,那么 Nunu 绝对是你的不二选择!