开箱即用的go-zero示例

一、概述

开箱即用的 go-zero 示例,内置 api、scheduler、queue、script 服务。

框架初始版本基于 go-zero 框架的 1.5.5 版本,后续会参考 go-zero 的版本出相应的更新。

在熟悉 go-zero 框架过程中踩坑很多,衍生的 go-zero-box 框架也是相当于经验贴了,希望可以帮助开发者更快的度过熟悉期。

整理并且开源不易,后续还会持续编写 go-zero 框架和 go 语言新特性的使用心得,在使用过程中有任何问题,欢迎提 issue ,如果您觉得项目对您有帮助,希望给个️ ⭐️ star ⭐️ ,十分感谢。

二、特性

  • 做了一些符合Web应用框架的目录划分,使开发者代码阅读更便捷,减少开发成本;

  • 提供了初始业务的 api 代码示例,包含登录、注册、鉴权等开箱即用的业务功能;

  • 提供了初始业务的 api 文档,使用 Apifox 工具,导入即可使用 go-zero-box.apifox.json

  • 增加了更多的 ORM API,支持复杂的数据操作业务;

  • 引入 asynq 库,实现了队列、调度、脚本等功能;

  • 引入 wire 库,实现了依赖注入功能;

  • 通过 app [command] 的方式,在多实例扩展的场景下可以更方便地部署 api 、scheduler、queue 服务;

  • go 语言新特性的优秀示例,比如通过范式实现的三元表达式 tools.Any(a == b, a, b)

    ···

    持续更新中,敬请期待。

三、框架介绍

go-zreo 框架 + goctl 代码生成工具 + wire 依赖注入 + Makefile 实现自动化编译。

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架,缩短从需求到上线的距离,通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

goctl 是 go-zero 微服务框架下的代码生成工具。使用 goctl 可显著提升开发效率,让开发人员将时间重点放在业务开发上,其功能有:api服务生成、rpc服务生成、model代码生成、模板管理。

wire 是一个依赖注入工具,用于解决 Go 语言中依赖注入的问题。通过 wire,您可以轻松地管理应用程序的依赖关系,并确保它们在编译时进行注入。

Makefile 文件描述了 Linux 系统下项目工程的编译规则,只需要一个 make bild 命令,整个工程就开始自动构建项目环境,不再需要手动执行大量的 go build 命令,Makefile 文件定义了一系列规则,指明了源文件的编译顺序、依赖关系、是否需要重新编译等,可以输入 make help 查看命令集。

源码地址:https://github.com/prf16/go-zero-box

相关推荐
zhuyasen2 小时前
PerfTest: 压测工具界的“瑞士军刀”,原生支持HTTP/1/2/3、Websocket,同时支持实时监控
go·测试
年轻的麦子11 小时前
Go 框架学习之:go.uber.org/fx项目实战
后端·go
粘豆煮包12 小时前
脑抽研究生Go并发-1-基本并发原语-下-Cond、Once、Map、Pool、Context
后端·go
程序员爱钓鱼16 小时前
Go语言实战案例-实现简易定时提醒程序
后端·google·go
岁忧1 天前
(LeetCode 面试经典 150 题) 200. 岛屿数量(深度优先搜索dfs || 广度优先搜索bfs)
java·c++·leetcode·面试·go·深度优先
程序员爱钓鱼1 天前
Go语言实战案例- 命令行参数解析器
后端·google·go
墩墩分墩2 天前
【Go语言入门教程】 Go语言的起源与技术特点:从诞生到现代编程利器(一)
开发语言·后端·golang·go
程序员爱钓鱼2 天前
Go语言实战案例- 开发一个ToDo命令行工具
后端·google·go
科技树支点2 天前
无GC的Java创新设计思路:作用域引用式自动内存管理
java·python·go·web·编程语言·编译器
qq_172805592 天前
GO : cannot find module
学习·go