go-Nunu,一个好用的脚手架推荐,助你快速构建Go应用

这篇具有很好参考价值的文章主要介绍了go-Nunu,一个好用的脚手架推荐,助你快速构建Go应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

虽然直接使用go-gin等框架也很简单,但是涉及数据库、jwt认证、配置文件和日志记录等全套的服务,一个个集成进来也挺费事。关键是一个个集成,很难做到结构清晰和分层合理。这里推荐一个好用的脚手架Nunu,太好用啦,可以让你把精力直接放在业务上直接开干。

Nunu介绍

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

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

功能特色
Nunu 采用了多种常用且非常流行的库,包括 Gin、Gorm、Wire、Viper、Zap、Golang-jwt、Go-redis、Testify、Sonyflake、robfig-cron 等等。这些库涵盖了http服务、数据库访问、配置文件、日志记录、认证鉴权等常用组件。他们的组合可以帮助你快速构建一个高效、可靠的应用程序。

分层架构

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

go-Nunu,一个好用的脚手架推荐,助你快速构建Go应用,Go语言实践笔记,golang,开发语言,后端,go-nunu

特性
Nunu 具有以下特性:

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

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

nunu/docs/zh/guide.md at main · go-nunu/nunu · GitHub

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

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

安装

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

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

linux下把nunu命令加入环境变量:

vi ~/.bashrc

bashrc文件末尾增加并保存

export PATH=$PATH:/root/go/bin

让环境变量生效:

source ~/.bashrc

简单使用 

创建新项目

您可以使用以下命令创建一个新的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

 go-Nunu,一个好用的脚手架推荐,助你快速构建Go应用,Go语言实践笔记,golang,开发语言,后端,go-nunu

 目录介绍

.
├── 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

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

启动项目

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

nunu run

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

编译 wire.go

wire是Go官方推出的一款类似于Spring依赖注入工具。有别于以往的依赖注入工具facebookgo/inject、uber-go/dig等,采用反射实现。wire采用通过代码描述对象之间的依赖关系,然后自动生成代码在编译期实现依赖注入的工具 源码:https://github.com/google/wire

什么是依赖注入

说到依赖注入(Dependency Injection,缩写DI),不得不提控制反转(Inversion of Control,缩写为IoC)。IoC是一种设计思想,核心作用是降低代码耦合度。 传统系统应用是在类内部主动引用对象,从而导致类与类之间高度耦合,不利于维护,而有了IoC容器后,把创建和查找对象工作交给容器,由容器动态的将某个依赖关系注入对象中,控制权由调用者应用代码转移到IoC容器,控制权发生了反转,从而实现对象间解耦。依赖注入是实现IoC解决依赖问题的设计模式。

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

nunu wire

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

书籍推荐

首页关注博主公众号《猫青年》,回复“书籍”,获取更多高清电子书资源!完全免费!

GitHub - imarvinle/awesome-cs-books: 🔥 经典编程书籍大全,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试等

其他资源

 nunu/docs/zh/guide.md at main · go-nunu/nunu · GitHub

 Nunu: 助你快速构建高效可靠的Go应用_出于随性的博客-CSDN博客

框架 - Nunu: 助你快速构建高效可靠的Go应用 - 个人文章 - SegmentFault 思否

go-nunu: Nunu是一个基于Golang的应用脚手架

搭建go脚手架_go 脚手架_风落不归处的博客-CSDN博客

Wire:Go最优雅的依赖注入工具 - 码农教程文章来源地址https://www.toymoban.com/news/detail-580208.html

Go 官方依赖注入工具wire-腾讯云开发者社区-腾讯云

Wire:Go最优雅的依赖注入工具 - 码农教程

到了这里,关于go-Nunu,一个好用的脚手架推荐,助你快速构建Go应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从k8s当中学习go cli脚手架开发利器-cobra

    大部分的项目都会引入cobra来作为项目的命令行解析工具,k8s当中大量使用cobra,学习借鉴一下k8s当中是如何使用cobra,在此记录一下。 cobra是一个提供简单接口来创建强大的现代CLI界面的库类似git   git tools,cobra也是一个应用程序,它会生成你的应用程序的脚手架来快速开发

    2024年02月21日
    浏览(24)
  • 创建一个vue2的脚手架项目(超详细)

    0.前言 在用npm安装vue脚手架之前需要安装node,前面博客有详细安装过程,请读者安装node之后再进行脚手架的安装 1 npm vue2的安装脚手架 2.创建vue2脚手架项目 3.开启服务器 4.在浏览器中输入端口地址 5.项目目录介绍

    2024年02月11日
    浏览(47)
  • mac下安装vue cli脚手架并搭建一个简易项目

    1、确定本电脑下node和npm版本是否为项目所需版本。 2、下载vue脚手架 3、创建项目 如果有node,打开终端,输入node -v和npm -v , 确保node和npm的版本,(这里可以根据自己的需求去选择,如果对最新版本的内容有要求,也可以选择最新版本)如果没有node,可以点击nodejs官网去下载

    2024年02月15日
    浏览(52)
  • 从0搭建Vue3组件库(十):如何搭建一个 Cli 脚手架

    本篇文章将实现一个名为 create-easyest 脚手架的开发,只需一个命令 npm init easyest 就可以将整个组件库开发框架拉到本地。 首先,我们在 packages 目录下新建 cli 目录,同执行 pnpm init 进行初始化,然后将包名改为 create-easyest 这里需要知道的是当我们执行 npm init xxx 或者 npm create xxx 的

    2024年02月08日
    浏览(72)
  • Mac OS安装Vue CLI脚手架并创建一个基础项目教程

    前后端分离 可以大大地提高开发效率,主流的解决方案为 Vue.js+SpringBoot ,这里主要介绍 Vue在Mac端的入门教程 。软硬件环境为Macbook Air M2+macOS Vantura 13.4.1。 Vue (发音为 /vjuː/,类似 view) 是一款用于 构建用户界面 的 JavaScript 框架,是官方提供的 基于 Webpack 的 Vue 工具链 。它基

    2024年02月04日
    浏览(55)
  • [golang 微服务] 7. go-micro框架介绍,go-micro脚手架,go-micro结合consul搭建微服务案例

    上一节讲解了 GRPC微服务集群 + Consul集群 + grpc-consul-resolver 相关的案例,知道了微服务之间通信采用的 通信协议 ,如何实现 服务的注册和发现 ,搭建 服务管理集群 ,以及服务与服务之间的 RPC通信方式 ,具体的内容包括: protobuf协议 , consul 及 docker部署consul集群 , GRPC框架 的

    2024年02月09日
    浏览(28)
  • 三、创建脚手架和脚手架分析

    1、安装node.js **下载地址:**https://nodejs.org/zh-cn/ 界面展示 2、检查node.js版本 查看版本的两种方式 node -v node -version 出现版本号则说明安装成功(最新的以官网为准) 3、为了提高我们的效率,可以使用淘宝的镜像源 输入: npm install -g cnpm --registry=https://registry.npm.taobao.org 即可安

    2024年02月22日
    浏览(36)
  • win系统将脚手架的软链接指向本地脚手架

    先了解一下脚手架研发、发布、安装、调试发大致流程: 本地研发,具体研发过程略 当前目录下登录npm npm login 发布脚手架 npm publish 安装脚手架 npm i -g xxxx(win系统会在系统盘的nodejs文件夹下自动添加脚手架执行命令和执行文件) 执行脚手架命令,没问题的话说明整个流程

    2024年02月08日
    浏览(38)
  • Vue 脚手架

    ├── node_modules ├── public │ ├── favicon.ico: 页签图标 │ └── index.html: 主页面 ├── src │ ├── assets: 存放静态资源 │ │ └── logo.png │ │── component: 存放组件 │ │ └── HelloWorld.vue │ │── App.vue: 汇总所有组件 │ │── main.js: 入口文件 ├── .gi

    2024年03月24日
    浏览(34)
  • 安装React脚手架

    在安装React脚手架之前,你需要决定使用哪个包管理工具。这里我们选择使用npm。运行下面的命令来安装React脚手架: 这个命令会在全局安装React脚手架工具create-react-app。 现在,你已经准备好创建一个新的React应用程序了。使用下面的命令来创建一个名为myreactapp的React应用程

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包