欢迎光临散文网 会员登陆 & 注册

一款强大的生成代码工具,它可以根据你的输入,自动生成web和微服务完整的项目代码

2023-04-12 00:09 作者:gopher的院子  | 我要投稿

sponge 是一个快速生成web和微服务项目代码工具,也是一个基于gin和grpc封装的微服务框架。sponge拥有丰富的生成代码命令,一共生成12种不同功能代码,这些功能代码可以组合成完整的服务(类似人为打散的海绵细胞可以自动重组成一个新的海绵)。微服务代码功能包括日志、服务注册与发现、注册中心、限流、熔断、链路跟踪、指标监控、pprof性能分析、统计、缓存、CICD等功能。代码解耦模块化设计,很容易构建出从开发到部署的完整项目代码,让使用go语言开发项目更便捷、轻松、高效。


项目地址:https://github.com/zhufuyi/sponge
使用文档:https://go-sponge.com/
视频教程:https://space.bilibili.com/1440482691/video
在线生成代码demo: https://go-sponge.com/ui/


sponge 生成命令框架

生成代码基于YamlSQL DDLProtocol buffers三种方式,每种方式拥有生成不同功能代码,生成代码的框架图如下图所示:

生成代码框架图


微服务框架

sponge生成的微服务代码框架如图下图所示,这是典型的微服务分层结构,具有高性能,高扩展性,包含常用的服务治理功能。

微服务架构图


微服务主要功能:

  • Web 框架 gin

  • RPC 框架 grpc

  • 配置解析 viper

  • 配置中心 nacos

  • 日志 zap

  • 数据库组件 gorm

  • 缓存组件 go-redis ristretto

  • 文档 swagger

  • 鉴权 jwt

  • 校验 validator

  • 限流 ratelimit

  • 熔断 circuitbreaker

  • 链路跟踪 opentelemetry

  • 监控 prometheus, grafana

  • 服务注册与发现 etcd, consul, nacos

  • 性能分析 go profile

  • 代码规范检查 golangci-lint

  • 持续集成部署 CICD jenkins docker, kubernetes

代码目录结构遵循 project-layout,代码目录结构如下所示:

代码目录结构

web服务和rpc服务目录结构基本一致,其中有一些目录是web服务独有(internal目录下的routers、handler、types),有一些目录是rpc服务独有(internal目录下的service)。


快速安装

  • 在linux或macOS安装sponge

  • 在windows安装sponge


生成项目代码界面

生成12种不同功能代码命令都已经做了UI界面,使用起来更加方便,在线生成代码demo: https://go-sponge.com/ui/。

如果在本地安装了sponge,执行命令启动UI界面

sponge run

例如创建web服务完整项目如下图所示:

生成web服务完整项目代码


还可以生成其他功能代码,有兴趣可以在本地尝试。



一款强大的生成代码工具,它可以根据你的输入,自动生成web和微服务完整的项目代码的评论 (共 条)

分享到微博请遵守国家法律