一款強(qiáng)大的生成代碼工具,它可以根據(jù)你的輸入,自動(dòng)生成web和微服務(wù)完整的項(xiàng)目代碼
sponge?是一個(gè)快速生成web和微服務(wù)項(xiàng)目代碼工具,也是一個(gè)基于gin和grpc封裝的微服務(wù)框架。sponge擁有豐富的生成代碼命令,一共生成12種不同功能代碼,這些功能代碼可以組合成完整的服務(wù)(類似人為打散的海綿細(xì)胞可以自動(dòng)重組成一個(gè)新的海綿)。微服務(wù)代碼功能包括日志、服務(wù)注冊(cè)與發(fā)現(xiàn)、注冊(cè)中心、限流、熔斷、鏈路跟蹤、指標(biāo)監(jiān)控、pprof性能分析、統(tǒng)計(jì)、緩存、CICD等功能。代碼解耦模塊化設(shè)計(jì),很容易構(gòu)建出從開(kāi)發(fā)到部署的完整項(xiàng)目代碼,讓使用go語(yǔ)言開(kāi)發(fā)項(xiàng)目更便捷、輕松、高效。
項(xiàng)目地址:https://github.com/zhufuyi/sponge
使用文檔:https://go-sponge.com/
視頻教程:https://space.bilibili.com/1440482691/video
在線生成代碼demo:?https://go-sponge.com/ui/
sponge 生成命令框架
生成代碼基于Yaml、SQL DDL和Protocol buffers三種方式,每種方式擁有生成不同功能代碼,生成代碼的框架圖如下圖所示:

微服務(wù)框架
sponge生成的微服務(wù)代碼框架如圖下圖所示,這是典型的微服務(wù)分層結(jié)構(gòu),具有高性能,高擴(kuò)展性,包含常用的服務(wù)治理功能。

微服務(wù)主要功能:
Web 框架?gin
RPC 框架?grpc
配置解析?viper
配置中心?nacos
日志?zap
數(shù)據(jù)庫(kù)組件?gorm
緩存組件?go-redis?ristretto
文檔?swagger
鑒權(quán)?jwt
校驗(yàn)?validator
限流?ratelimit
熔斷?circuitbreaker
鏈路跟蹤?opentelemetry
監(jiān)控?prometheus,?grafana
服務(wù)注冊(cè)與發(fā)現(xiàn)?etcd,?consul,?nacos
性能分析?go profile
代碼規(guī)范檢查?golangci-lint
持續(xù)集成部署 CICD?jenkins?docker,?kubernetes
代碼目錄結(jié)構(gòu)遵循?project-layout,代碼目錄結(jié)構(gòu)如下所示:

web服務(wù)和rpc服務(wù)目錄結(jié)構(gòu)基本一致,其中有一些目錄是web服務(wù)獨(dú)有(internal目錄下的routers、handler、types),有一些目錄是rpc服務(wù)獨(dú)有(internal目錄下的service)。
快速安裝
在linux或macOS安裝sponge
在windows安裝sponge
生成項(xiàng)目代碼界面
生成12種不同功能代碼命令都已經(jīng)做了UI界面,使用起來(lái)更加方便,在線生成代碼demo:?https://go-sponge.com/ui/。
如果在本地安裝了sponge,執(zhí)行命令啟動(dòng)UI界面
sponge run
例如創(chuàng)建web服務(wù)完整項(xiàng)目如下圖所示:

還可以生成其他功能代碼,有興趣可以在本地嘗試。