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

codingcn · · 4199 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

![image.png](https://cdn.tehub.com/uploads/bSw8h61s2K/a/cFqhzK9Lg1/e8d2cbf3-3799-43a2-c8f4-6bd48cb98019.png) Nunu 是一个基于 Golang 的应用脚手架,它的名字来自于英雄联盟中的游戏角色,一个骑在雪怪肩膀上的小男孩。和努努一样,该项目也是**站在巨人的肩膀上**,它是由 Golang 生态中各种非常流行的库整合而成的,它们的组合可以帮助你快速构建一个高效、可靠的应用程序。 项目主页:https://github.com/go-nunu/nunu ## 功能 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](https://static.golangjob.cn/230617/d8929e15d106a832d764af871ed543f9.png) ## 文档 Nunu 提供了全面的文档和示例,帮助你快速入门。它还包括一套测试套件,确保你的应用程序按预期工作。 ## 要求 要使用 Nunu,你需要在系统上安装以下软件: * Golang 1.16 或更高版本 * Git * MySQL 5.7 或更高版本(可选) * Redis(可选) ### 安装 你可以通过一行命令安装 Nunu: ```bash go install github.com/go-nunu/nunu@latest ``` ![image.png](https://cdn.tehub.com/uploads/bSw8h61s2K/a/cFqhzK9Lg1/461e2412-bd8d-4297-910b-c4cbd86cda36.png) ### 创建新项目 你可以使用以下命令创建一个新的 Golang 项目: ```bash nunu new projectName // or nunu new projectName -r https://github.com/go-nunu/nunu-layout-advanced.git ``` 效果预览: ![](https://cdn.tehub.com/uploads/bSw8h61s2K/a/cFqhzK9Lg1/cFqYojFO5H.png) 此命令将创建一个名为 `projectName` 的目录,并在其中生成一个优雅的 Golang 项目结构。 ``` . ├── cmd │ ├── job │ │ ├── main.go │ │ ├── wire.go │ │ └── wire_gen.go │ ├── migration │ │ ├── main.go │ │ ├── wire.go │ │ └── wire_gen.go │ └── server │ ├── main.go │ ├── wire.go │ └── wire_gen.go ├── config │ ├── local.yml │ └── prod.yml ├── deploy ├── internal │ ├── handler │ │ ├── handler.go │ │ └── user.go │ ├── job │ │ └── job.go │ ├── middleware │ ├── migration │ │ └── migration.go │ ├── model │ │ └── user.go │ ├── repository │ │ ├── repository.go │ │ └── user.go │ ├── server │ │ └── http.go │ └── service │ ├── service.go │ └── user.go ├── mocks │ ├── repository │ │ └── user.go │ └── service │ └── user.go ├── pkg ├── scripts ├── storage ├── test │ └── server │ ├── handler │ │ └── user_test.go │ ├── repository │ │ └── user_test.go │ └── service │ └── user_test.go ├── web │ └── index.html ├── LICENSE ├── Makefile ├── README.md ├── README_zh.md ├── coverage.html ├── go.mod └── go.sum ``` 这是一个经典的Golang 项目的目录结构,包含以下目录: - `cmd`:存放命令行应用的代码,例如 `main.go`。 - `config`:存放配置文件,例如 `config.yaml`。 - `internal`:存放项目内部的代码,不对外暴露。 - `repository`:存放数据访问层的代码。 - `handler`:存放 HTTP 请求处理器的代码。 - `middleware`:存放 HTTP 中间件的代码。 - `model`:存放数据模型的代码。 - `provider`:存放依赖注入的代码。 - `server`:存放 HTTP 服务器以及路由注册的代码。 - `service`:存放业务逻辑的代码。 - `pkg`:存放可重用的代码,对外暴露。 - `config`:存放读取配置文件的代码。 - `helper`:存放辅助函数的代码。 - `http`:存放 HTTP 相关的代码。 - `log`:存放日志相关的代码。 ### 创建组件 你可以使用以下命令为项目创建 handler、service 和 repository 等组件: ```bash nunu create handler user nunu create service user nunu create repository user nunu create model user ``` 这些命令将分别创建一个名为 `UserHandler`、`UserService`、`UserRepository` 和 `UserModel` 的组件,并将它们放置在正确的目录中。 ### 启动项目 你可以使用以下命令快速启动项目: ```bash nunu run ``` 此命令将启动你的 Golang 项目,并支持文件更新热重启。 ### 编译 wire.go 你可以使用以下命令快速编译 `wire.go`: ```bash nunu wire ``` 此命令将编译你的 `wire.go` 文件,并生成所需的依赖项。 ## 贡献 如果你发现任何问题或有任何改进意见,请随时提出问题或提交拉取请求。非常欢迎你的贡献! ## 许可证 Nunu 是根据 MIT 许可证发布的。有关更多信息,请参见 LICENSE 文件。 **总之**,Nunu 是一个非常优秀的 Golang 应用脚手架,它可以帮助你快速构建高效、可靠的应用程序。如果你正在寻找一个优秀的 Golang 应用脚手架,那么 Nunu 绝对是你的不二选择!

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4199 次点击  ∙  2 赞  
加入收藏 微博
5 回复  |  直到 2023-06-25 18:26:07
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传