一款强大的生成代码工具,自动生成 web 和微服务完整的项目代码,让你的开发过程变得简单而有趣
sponge 是一个强大的生成 web 和微服务项目代码工具,也是一个基于 gin 和 grpc 封装的微服务框架。sponge 支持生成 12 种不同功能代码,这些功能代码可以组合成完整的服务(类似人为打散的海绵细胞可以自动重组成一个新的海绵)。微服务代码功能包括日志、服务注册与发现、注册中心、限流、熔断、链路跟踪、指标监控、pprof 性能分析、统计、缓存、CICD 等功能。代码解耦模块化设计,很容易构建出从开发到部署的完整项目代码,让使用 go 语言开发项目更便捷、轻松、高效。
项目地址:https://github.com/zhufuyi/sponge
使用文档:https://go-sponge.com/zh-cn/
视频教程:https://space.bilibili.com/1440482691/channel/series
在线生成代码 demo: https://go-sponge.com/ui/
生成代码框架
生成代码基于 Yaml、SQL DDL 和 Protocol buffers 三种方式,每种方式拥有生成不同功能代码,生成代码的框架图如下图所示:
生成代码框架图
微服务框架
sponge 生成的微服务代码框架如下图所示,这是典型的微服务分层结构,具有高性能,高扩展性,包含常用的服务治理功能。
微服务主要功能:
Web 框架 gin
RPC 框架 grpc
配置解析 viper
配置中心 nacos
日志 zap
数据库组件 gorm
文档 swagger
鉴权 jwt
校验 validator
限流 ratelimit
链路跟踪 opentelemetry
监控 prometheus, grafana
性能分析 go profile
代码规范检查 golangci-lint
持续集成部署 CICD jenkins docker, kubernetes
代码目录结构遵循 project-layout,代码目录结构如下所示:
web 服务和 rpc 服务目录结构基本一致,其中有一些目录是 web 服务独有(internal 目录下的 routers、handler、types),有一些目录是 rpc 服务独有(internal 目录下的 service)。
快速安装 sponge
生成项目代码界面
生成 12 种不同功能代码命令都已经做了 UI 界面,使用起来更加方便,在线生成代码 demo: https://go-sponge.com/ui/。
如果在本地安装了 sponge,执行命令启动 UI 界面
例如创建 web 服务完整项目如下图所示:
还可以生成其他功能代码,有兴趣可以在本地尝试。
评论