一个强大的Go开发框架sponge,以低代码方式开发项目

sponge 介绍

sponge 是一个强大的 Go 开发框架,其核心理念是通过解析 SQLProtobufJSON 文件逆向生成模块化的代码,这些模块代码可灵活组合成多种类型的完整后端服务(类似海绵细胞的特性,打散的海绵细胞能自动重新组合成新的海绵)。sponge 拥有出色的项目工程化能力,提供一站式项目开发解决方案,涵盖代码生成、开发、测试、API 文档生成和部署。sponge 通过模块化架构与AI助手深度融合,大幅提升开发效率、降低技术门槛,助力开发者以”低代码”方式轻松构建稳定可靠的后端系统。

github地址: https://github.com/go-dev-frame/sponge


适用场景

sponge 适用于快速构建多种类型的高性能后端服务,包括但不限于:

  • RESTful API 服务
  • Web 服务 (基于Gin)
  • gRPC 服务
  • HTTP+gRPC 混合服务
  • gRPC Gateway API 服务
  • 云原生微服务

此外,开发者还可以通过自定义模板,生成满足业务需求的各类代码。


核心优势

  1. 一键生成完整后端服务代码
    对于仅需 CRUD APIWebgRPC 服务,无需编写任何 Go 代码。只需连接数据库(如 MySQLMongoDBPostgreSQLSQLite),即可一键生成完整后端服务代码,并轻松部署到 Linux 服务器、Docker 或 Kubernetes 上。

  2. 高效开发通用服务
    开发通用的 WebgRPCHTTP+gRPCgRPC Gateway 服务,只需专注于以下三部分:

    • 数据库表的定义;
    • 在 Protobuf 文件中定义 API 描述信息;
    • 在生成的模板中,使用内置AI助手或人工编写业务逻辑代码。

服务的框架代码和 CRUD API 代码均由 sponge 自动生成。

  1. 支持自定义模板,灵活扩展
    sponge 支持通过自定义模板生成项目所需的多种代码类型,不局限于 Go 语言。例如:

    • 后端代码;
    • 前端代码;
    • 配置文件;
    • 测试代码;
    • 构建和部署脚本等。
  2. 在页面生成代码,简单易用
    sponge 提供在页面生成代码,避免了复杂的命令行操作,只需在页面上简单的填写参数即可一键生成代码。

  3. 与 AI 助手协同开发,形成开发闭环
    sponge 与 内置的 AI 助手(DeepSeek、ChatGPT、Gemini)深度融合,形成一套完整的高效开发解决方案:

    • sponge:负责基础设施代码生成(服务框架、CRUD API 接口、自定义 API 接口代码(缺少业务逻辑)等)。
    • AI助手:专注业务逻辑实现(表结构 DDL 设计、自定义 API 接口定义、业务逻辑实现代码)。


快速开始

  1. 安装 sponge 支持在 windows、mac、linux 环境下安装 sponge,点击查看 安装 sponge 说明

  2. 打开生成代码 UI 页面 安装完成后,执行命令打开 sponge UI 页面:

   sponge run

在本地浏览器访问 http://localhost:24631,在页面上操作生成代码,如下图所示:

sponge-ui


主要功能

sponge包含丰富的组件(按需使用):


目录结构

生成的服务代码目录结构遵循 project-layout

这是生成的单体应用单体仓库(monolith)微服务多仓库(multi-repo)代码目录结构:

.
├── api            # protobuf文件和生成的*pb.go目录
├── assets         # 其他与资源库一起使用的资产(图片、logo等)目录
├── cmd            # 程序入口目录
├── configs        # 配置文件的目录
├── deployments    # 裸机、docker、k8s部署脚本目录
├── docs           # 设计文档和界面文档目录
├── internal       # 业务逻辑代码目录
│    ├── cache        # 基于业务包装的缓存目录
│    ├── config       # Go结构的配置文件目录
│    ├── dao          # 数据访问目录
│    ├── database     # 数据库目录
│    ├── ecode        # 自定义业务错误代码目录
│    ├── handler      # http的业务功能实现目录
│    ├── model        # 数据库模型目录
│    ├── routers      # http路由目录
│    ├── rpcclient    # 连接grpc服务的客户端目录
│    ├── server       # 服务入口,包括http、grpc等
│    ├── service      # grpc的业务功能实现目录
│    └── types        # http的请求和响应类型目录
├── pkg            # 外部应用程序可以使用的库目录
├── scripts        # 执行脚本目录
├── test           # 额外的外部测试程序和测试数据
├── third_party    # 依赖第三方protobuf文件或其他工具的目录
├── Makefile       # 开发、测试、部署相关的命令集合
├── go.mod         # go 模块依赖关系和版本控制文件
└── go.sum         # go 模块依赖项的密钥和校验文件


这是生成的微服务单体仓库(mono-repo)代码目录结构(也就是大仓库代码目录结构):

.
├── api
│    ├── server1       # 服务1的protobuf文件和生成的*pb.go目录
│    ├── server2       # 服务2的protobuf文件和生成的*pb.go目录
│    ├── server3       # 服务3的protobuf文件和生成的*pb.go目录
│    └── ...
├── server1        # 服务1的代码目录,与微服务多仓库(multi-repo)目录结构基本一样
├── server2        # 服务2的代码目录,与微服务多仓库(multi-repo)目录结构基本一样
├── server3        # 服务3的代码目录,与微服务多仓库(multi-repo)目录结构基本一样
├── ...
├── third_party    # 依赖的第三方protobuf文件
├── go.mod         # go 模块依赖关系和版本控制文件
└── go.sum         # go 模块依赖项的密钥和校验和文件


使用示例

使用 sponge 创建服务示例

使用 sponge 开发完整项目示例

分布式事务示例


总结

sponge 是一个帮助你大幅提高开发效率、降低开发成本的开发框架,通过支持主流数据库、低代码开发和自动化功能,同时支持自定义的灵活扩展功能。如果您正在寻找一种方法来显著提高开发效率并缩短上线时间,那么sponge绝对值得一试。




专题「golang相关」的其它文章 »