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

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。

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

文档

Nunu 供给了全面的文档和示例,协助你快速入门。它还包含一套测验套件,确保你的应用程序按预期作业。

要求

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

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

装置

你能够通过一行指令装置 Nunu:

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

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

创立新项目

你能够运用以下指令创立一个新的 Golang 项目:

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

效果预览:

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

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

.
├── 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 等组件:

nunu create handler user
nunu create service user
nunu create dao user
nunu create model user

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

发动项目

你能够运用以下指令快速发动项目:

nunu run

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

编译 wire.go

你能够运用以下指令快速编译 wire.go

nunu wire

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

贡献

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

许可证

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

总之,Nunu 是一个非常优异的 Golang 应用脚手架,它能够协助你快速构建高效、牢靠的应用程序。假如你正在寻找一个优异的 Golang 应用脚手架,那么 Nunu 肯定是你的不二挑选!