Skip to content

Latest commit

 

History

History
186 lines (129 loc) · 9.72 KB

readme-cn.md

File metadata and controls

186 lines (129 loc) · 9.72 KB

English | 简体中文


sponge 是一个集成了 自动生成代码Gin和GRPC 的强大的开发框架。sponge拥有丰富的生成代码命令,生成不同的功能代码可以组合成完整的服务(类似人为打散的海绵细胞可以自动重组成一个新的海绵)。从生成代码、开发、测试、api文档到部署一站式项目开发,大幅提高了开发效率和降低了开发难度,实现"低代码方式"进行开发项目。


如果开发只有CRUD api的web或微服务,不需要编写任何go代码就可以编译并部署到linux服务器、docker、k8s上,只需要连接到数据库(mysql、mongodb、postgresql、tidb、sqlite)就可以一键自动生成完整的后端服务go代码。

如果开发通用的web或微服务,只需聚焦在数据库定义表在proto文件定义api描述信息在生成的模板文件填写业务逻辑代码三个核心部分,其他go代码都由sponge自动生成。


生成代码框架

sponge主要基于SQLProtobuf两种方式生成代码,每种方式生成不同用途的代码。其中SQL支持数据库mysqlmongodbpostgresqltidbsqlite

生成代码的框架图


生成代码框架对应的UI界面


微服务框架

sponge也是一个微服务框架,框架图如下图所示,这是典型的微服务分层结构,具有高性能,高扩展性,包含了常用的服务治理功能,可以很方便替换或添加自己的服务治理功能。


创建的http和grpc服务代码的性能测试: 50个并发,总共100万个请求。

http-server

grpc-server

点击查看测试代码


主要功能

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


目录结构

生成的服务代码目录结构遵循 project-layout,代码目录结构如下所示。支持的仓库类型有单体应用单体仓库(monolith)微服务多仓库(multi-repo)微服务单体仓库(mono-repo)

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

快速开始

安装sponge

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

启动UI服务

安装完成后,启动sponge UI服务:

sponge run

在本地浏览器访问 http://localhost:24631,在UI页面上操作生成代码。

如果想要在跨主机的浏览器上访问,启动UI时需要指定宿主机ip或域名,示例 sponge run -a http://your_host_ip:24631。 也可以在docker上启动UI服务来支持跨主机访问,点击查看docker启动sponge UI服务说明


sponge开发文档

使用sponge开发项目的详细的操作、配置、部署说明,点击查看sponge开发文档


使用示例

使用sponge创建服务示例

使用sponge开发完整项目示例

分布式事务示例


视频介绍

视频教程演示使用sponge v1.3.12版本,后续的版本增加了一些自动化功能、调整了一些UI界面和菜单,建议结合文档教程使用。



如果对您有帮助给个star⭐,欢迎加入go sponge微信群交流,加微信(备注sponge)进群。