README_zh.md 6.1 KB

Nunu — A CLI tool for building go aplication.

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

英文介绍

Nunu

功能

Nunu CLI

Nunu

文档

  • 使用指南
  • 分层架构
  • 上手教程

    目录结构

    .
    ├── cmd
    │   └── server
    │       ├── wire
    │       │   ├── wire.go
    │       │   └── wire_gen.go
    │       └── main.go
    ├── config
    │   ├── local.yml
    │   └── prod.yml
    ├── internal
    │   ├── dao
    │   │   ├── dao.go
    │   │   └── user.go
    │   ├── handler
    │   │   ├── handler.go
    │   │   └── user.go
    │   ├── middleware
    │   │   └── cors.go
    │   ├── model
    │   │   └── user.go
    │   ├── provider
    │   │   └── provider.go
    │   ├── server
    │   │   └── http.go
    │   └── service
    │       ├── service.go
    │       └── user.go
    ├── pkg
    │   ├── config
    │   │   └── config.go
    │   ├── helper
    │   │   ├── md5
    │   │   │   └── md5.go
    │   │   ├── resp
    │   │   │   └── resp.go
    │   │   ├── sonyflake
    │   │   │   └── sonyflake.go
    │   │   └── uuid
    │   │       └── uuid.go
    │   ├── http
    │   │   └── http.go
    │   └── log
    │       └── log.go
    ├── 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:存放日志相关的代码。

要求

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

  • Golang 1.16或更高版本
  • Git
  • MySQL5.7或更高版本(可选)
  • Redis(可选)

安装

您可以通过以下命令安装Nunu:

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

创建新项目

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

nunu new projectName

默认拉取github源,你也可以使用国内加速仓库

// 使用基础模板
nunu new projectName -r https://gitee.com/go-nunu/nunu-layout-basic.git
// 使用高级模板
nunu new projectName -r https://gitee.com/go-nunu/nunu-layout-advanced.git

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

创建组件

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

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

nunu create all user

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

启动项目

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

nunu run

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

编译wire.go

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

nunu wire

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

贡献

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

许可证

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