sponge 简介
sponge 是什么?
sponge是一个强大且易用的 Go 开发框架,其核心理念是定义即代码(Definition is Code),通过解析 SQL
、Protobuf
、JSON
文件生成模块化的 Go 代码,这些模块代码可灵活组合成多种类型的完整后端服务。
sponge 提供一站式项目开发解决方案,涵盖代码生成、开发、测试、API 文档和部署等,帮助开发者以"低代码"方式轻松构建稳定可靠的高性能后端服务(包括 RESTful API、gRPC、HTTP+gRPC、gRPC Gateway 等),大幅提升项目开发的效率与质量。
项目名字 sponge 的由来
sponge
生成的模块化代码可灵活的组成完整的后端服务,这个过程类似海绵细胞的特性,打散的海绵细胞能自动重新组合成新的海绵。
- 模块化代码 ⟷ 海绵细胞
- 完整服务代码 ⟷ 新的海绵
sponge 解决什么问题?
sponge 旨在解决传统 Go 开发中常见的以下问题:
从零搭建框架耗时耗力: 在 sponge UI 页面一键生成可编译运行的完整后端服务代码。
重复编写大量样板代码: 代码生成引擎代劳,开发者只需人工填充或内置 AI 助手生成业务逻辑代码,专注于业务逻辑实现。
项目结构不一致,难以维护: sponge 提供标准化的项目结构,降低维护成本,促进团队成员间的协作。
基础设施集成复杂: sponge 预集成了常用组件,简化配置和使用。
学习和应用 Go 最佳实践困难: 生成的代码本身就是一份可学习的示例,大幅降低的学习曲线。
重构项目困难: 采用标准化的分层架构设计与模块化编程模式,可有效降低系统重构复杂度。基于既有项目的数据表结构 SQL 或 Protobuf 协议定义,即可实现:1.项目快速重构,2.业务逻辑无缝迁移至新系统。
单体服务拆分微服务: 内置微服务架构模板和依赖解耦设计,轻松拆分单体为独立服务,兼容服务治理生态。
为什么选择 sponge?
选择 sponge 的主要原因在于它能够显著提升开发效率和项目质量:
极速开发: 通过代码生成引擎,开发者只需在页面上一键生成完整的后端服务代码(如
RESTFul API
、gRPC
、HTTP+gRPC
服务),如果是仅需CRUD API
的服务,无需编写任何Go
代码。减少重复劳动: 自动生成 CRUD 代码、API 接口、protobuf 文件等,避免手动编写大量重复性代码。内置 AI 助手(如 DeepSeek/ChatGPT/Gemini)自动生成与合并业务逻辑代码,进一步提升开发效率。
一站式工程化解决方案:提供从代码生成、开发、测试、API 文档生成到部署的全流程支持。
遵循最佳实践: 生成的代码基于 Go 社区的常用模式和 sponge 预设的最佳实践,有助于构建结构清晰、易于维护的项目。
统一开发规范: 提供一致的项目结构和编码风格,对于团队协作尤为重要。
内置常用组件: 集成了 Gin(中间件)、gRPC(拦截器)、Zap、错误处理、GORM、MongoDB、Redis、Swagger、JWT、WebSocket、RabbitMQ、Kafka、DTM(分布式事务管理器)、分布式锁等常用功能,开箱即用。
易于扩展和定制: 支持自定义模板生成代码,方便开发者根据自身需求进行修改和扩展。
从其他语言转 Go 的开发者快速上手开发项目: 提供清晰的中文文档、代码示例和最佳实践指南,帮助 Java/Python/PHP 等开发者无缝过渡,遵循 Go 语言习惯设计 API,降低学习成本,让您快速构建生产级应用。
主要特点
在页面生成代码,简单易用
sponge 提供在页面生成代码,避免了复杂的命令行操作,只需在页面上简单的填写参数即可一键生成代码。一键生成完整后端服务代码
对于仅需CRUD API
的Web
、gRPC
、HTTP+gRPC
服务,无需编写任何Go
代码。只需连接数据库(如MySQL
、MongoDB
、PostgreSQL
、SQLite
),即可一键生成完整后端服务代码,并轻松部署到 Linux 服务器、Docker 或 Kubernetes 上。高效开发通用服务
开发通用的Web
、gRPC
、HTTP+gRPC
或gRPC Gateway
服务,只需专注于以下三部分:- 数据库表的定义;
- 在 Protobuf 文件中定义 API 描述信息;
- 在生成的模板中,人工编写或使用内置 AI 助手生成业务逻辑代码。
服务的框架代码和 CRUD API 代码均由 sponge 自动生成。
丰富的内置组件
内置丰富的组件,如 Gin(中间件)、gRPC(拦截器)、Zap、GORM、MongoDB、Redis、Swagger、JWT、WebSocket、RabbitMQ、Kafka、DTM、分布式锁等,满足各种开发需求。支持自定义模板,灵活扩展
sponge 支持通过自定义模板生成项目所需的多种代码类型,不局限于Go
语言。例如:- 后端代码;
- 前端代码;
- 配置文件;
- 测试代码;
- 构建和部署脚本等。
sponge 与 AI 助手协同开发,形成开发闭环
sponge 与 内置的 AI 助手(DeepSeek、ChatGPT、Gemini) 结合形成一套完整的高效开发解决方案:- sponge:负责基础设施代码生成,包括
服务框架
、CRUD API
、自定义 API(缺少业务逻辑)
等代码。 - AI 助手:专注业务逻辑实现,包括
表结构 DDL 设计
、自定义 API 设计
、业务逻辑
等代码。
- sponge:负责基础设施代码生成,包括
适用场景
sponge 适用于快速构建多种类型的高性能后端服务,适用场景如下:
开发 RESTful API 服务
构建微服务项目
云原生开发
重构旧有项目
作为 Go 初学者或团队学习 Go 项目结构和最佳实践的起点
此外,开发者还可以通过自定义模板,生成满足业务需求的各类代码。