写点什么

一款强大的生成代码工具,自动生成 web 和微服务完整的项目代码,让你的开发过程变得简单而有趣

作者:vison
  • 2023-04-15
    广东
  • 本文字数:1447 字

    阅读完需:约 5 分钟

一款强大的生成代码工具,自动生成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/


生成代码框架

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


生成代码框架图

微服务框架

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


微服务框架图


微服务主要功能:


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


.├── api            # proto文件和生成的*pb.go目录├── assets         # 其他与资源库一起使用的资产(图片、logo等)目录├── build          # 打包和持续集成目录├── cmd            # 程序入口目录├── configs        # 配置文件的目录├── deployments    # IaaS、PaaS、系统和容器协调部署的配置和模板目录├─ docs            # 设计文档和界面文档目录├── internal       # 私有应用程序和库的代码目录│ ├── cache        # 基于业务包装的缓存目录│ ├── config       # Go结构的配置文件目录│ ├── dao          # 数据访问目录│ ├── ecode        # 自定义业务错误代码目录│ ├── handler      # http的业务功能实现目录│ ├── model        # 数据库模型目录│ ├── routers      # http路由目录│ ├── rpcclient    # 连接rpc服务的客户端目录│ ├── server       # 服务入口,包括http、rpc等│ ├── service      # rpc的业务功能实现目录│ └── types        # http的请求和响应类型目录├── pkg            # 外部应用程序可以使用的库目录├── scripts        # 用于执行各种构建、安装、分析等操作的脚本目录├── test           # 额外的外部测试程序和测试数据└── third_party    # 外部帮助程序、分叉代码和其他第三方工具
复制代码


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


快速安装 sponge


生成项目代码界面

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


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

sponge run
复制代码


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

生成web服务完整项目代码


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


用户头像

vison

关注

还未添加个人签名 2019-06-29 加入

还未添加个人简介

评论

发布
暂无评论
一款强大的生成代码工具,自动生成web和微服务完整的项目代码,让你的开发过程变得简单而有趣_微服务_vison_InfoQ写作社区