开箱即用的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
开箱即用的go-zero示例的更多相关文章
- Django学习之十二:Cache 缓存组件
目录 Django Cache 缓存组件 缓存逻辑伪代码 配置缓存源 可配置参数说明 01. Django的默认缓存 02. 基于Redis的django-redis 03. 自定义cache 04. ...
- AI 事件驱动场景 Serverless 实践
作者 | 李鹏(元毅) 来源 | Serverless 公众号 一.事件驱动框架:Knative Eventing 事件驱动是指事件在持续事务管理过程中,进行决策的一种策略.可以通过调动可用资源执行相 ...
- 使用英特尔 Sapphire Rapids 加速 PyTorch Transformers 模型
大约一年以前,我们 展示 了如何在第三代 英特尔至强可扩展 CPU (即 Ice Lake) 集群上分布式训练 Hugging Face transformers 模型.最近,英特尔发布了代号为 Sa ...
- Spring MVC 学习总结(四)——视图与综合示例
一.表单标签库 1.1.简介 从Spring2.0起就提供了一组全面的自动数据绑定标签来处理表单元素.生成的标签兼容HTML 4.01与XHTML 1.0.表单标签库中包含了可以用在JSP页面中渲染H ...
- 【Xbox one S】开箱&开机&初入坑心得
再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...
- 前端MVC Vue2学习总结(七)——ES6与Module模块化、Vue-cli脚手架搭建、开发、发布项目与综合示例
使用vue-cli可以规范项目,提高开发效率,但是使用vue-cli时需要一些ECMAScript6的知识,特别是ES6中的模块管理内容,本章先介绍ES6中的基础与模块化的内容再使用vue-cli开发 ...
- Spring Cloud 微服务架构学习笔记与示例
本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...
- Spring Boot 2.x 快速入门(上)HelloWorld示例
本文重点 最近决定重新实践下Spring Boot的知识体系,因为在项目中遇到的总是根据业务需求走的知识点,并不能覆盖Spring Boot完整的知识体系,甚至没有一个完整的实践去实践某个知识点.最好 ...
- Spring Boot 揭秘与实战 源码分析 - 开箱即用,内藏玄机
文章目录 1. 开箱即用,内藏玄机 2. 总结 3. 源代码 Spring Boot提供了很多”开箱即用“的依赖模块,那么,Spring Boot 如何巧妙的做到开箱即用,自动配置的呢? 开箱即用,内 ...
- 从一个简单的 JPA 示例开始
本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例:接着重构该示例,并引入 Sp ...
随机推荐
- IDEA批量实现CRLF转换成LF问题
需要注意idea项目中右下角:选择LF,否则到时候部署到生产环境上会报错'\r\n'问题,之前的解决方案是 dos2unix 然后很多文件报这个问题,索性进行批量转换,但是很快拉去的新项目又会出现同样 ...
- 『玩转Streamlit』--上传下载文件
在Web应用中,文件的上传下载是交互中不可缺少的功能. 因为在业务功能中,一般不会只有文字的交互,资料或图片的获取和分发是很常见的需求. 比如,文件上传可让用户向服务器提交数据,如上传图片分享生活.提 ...
- CentOS安装tigerVNC Server
- 不为人知的网络编程(十六):深入分析与解决TCP的RST经典异常问题
本文由腾讯技术kernel分享,原题"TCP经典异常问题探讨与解决",下文进行了排版和内容优化等. 1.引言 TCP的经典异常问题无非就是丢包和连接中断,在这里我打算与各位聊一聊T ...
- 成为百万架构师的第一课:设计模式:Spring中的设计模式
本文原文地址 Spring5 源码分析 一·.Spring 中常用的设计模式 1.我们通常说的23种经典设计模式: 分类 设计模式 创建型 工厂方法(Factory Method).抽象工厂模式(Ab ...
- JDK 19 Virtual Threads 虚拟线程
前言 Project Loom Loom 是什么? 为什么要引入 Loom? Virtual threads Platform thread 是什么? Virtual thread 是什么? Virt ...
- Transformer总结
Contents Attention OverallSurvey NLP Language Speech CV Backbone_Classification Self-Supervised Inte ...
- 隐藏zsh前面用户名或者主机名
1. zshrc 修改 vim ~/.zshrc文件,在文件底部增加: prompt_context() {} 只保留用户名,隐藏主机名 prompt_context() { if [[ " ...
- CDS标准视图:维护计划 I_MaintenancePlanBasic
视图名称:维护计划 I_MaintenancePlanBasic 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog.compiler.compareFilter: true @Aba ...
- mac文件目录结构
详解MAC硬盘中各个文件夹 详解MAC硬盘中各个文件夹 打开Macintosh HD你会发现内中有四个文件夹 分别有--应用程序(Applications).系统(System).用户(User).资 ...