分享一个超高效的 Go 项目开发脚手架:osbuilder(OneX Stack Builder)
在日常 Go 项目开发中,你是否经常遇到以下痛点:[*]重复造轮子:每次新项目都要从零搭建结构;
[*]项目结构不统一:多人协作时风格混乱,难以维护;
[*]增加一个资源(REST 接口)需要写大量样板代码;
[*]从搭建到可用,动辄耗费 2-3 天甚至更久。
如果你也面临这些问题,那今天要介绍的这个项目开发脚手架,绝对能帮你节省大量时间精力,把开发效率提升一个数量级!
项目背景:OneX 技术栈与 osbuilder 工具我目前正在组织的 云原生 AI 实战营,是一个专注于 Go + 云原生 + AI Infra 的实战训练营。在整个技术体系中,我们构建了一套完整的开发技术栈:OneX 技术栈。为了最大限度提升代码复用率和开发效率,我们打造了专属的代码生成工具 —— osbuilder,即 OneX Stack Builder。
osbuilder 有什么优势?
[*]自动生成符合 OneX 技术规范的 Go 项目;
[*]支持多种 Web 框架(gin、grpc、grpc-gateway);
[*]支持多种存储类型(Memory、MySQL、PostgreSQL、MongoDB、Redis 等);
[*]支持不同部署模式(Systemd、Docker、Kubernetes);
[*]支持为项目自动添加 REST 资源,支持 CURD 能力;
[*]自动生成符合 Go 编码规范的高质量代码,开箱即用;
[*]配套实战课程《Go 项目开发中级实战课》,助你快速上手。
快速实操:用 osbuilder 构建一个 gRPC 项目下面,我们通过命令行快速构建一个 gRPC 项目并添加 REST 资源,来直观感受 osbuilder 的高效和强大。1. 创建新项目
# 进入工作目录
$ mkdir -p $GOPATH/src/github.com/onexstack && cd $_
# 创建 gRPC 项目,添加 job 和 cron_job 两个资源,使用内存存储
$ osbuilder create project -b qa-apiserver \
--web-framework grpc \
--kinds job,cron_job \
--storage-type memory \
./demoproj
# 进入项目目录并编译
$ cd demoproj
$ make protoc.apiserver # 编译 Protobuf
$ go mod tidy # 获取依赖
$ go generate ./... # 生成依赖注入代码
$ make build BINS=qa-apiserver
$ _output/platforms/linux/amd64/qa-apiserver# 运行服务端2. 运行客户端验证接口# 打开另一个终端,运行示例客户端代码
$ cd $GOPATH/src/github.com/onexstack/demoproj
$ go run examples/client/job/main.go输出示例:Creating new job...
Job created successfully with ID: job-w6irkg
Listing jobs...
Found 2 jobs in total.
Deleting job with ID: job-w6irkg...
Job deleted successfully.
你没看错,这些资源的接口、模型、逻辑,全都是由 osbuilder 自动生成的,我们几乎没有写一行业务代码!
添加新 REST 资源:task & worker现在我们尝试为现有项目新增 task 和 worker 两个资源:$ cd $GOPATH/src/github.com/onexstack/demoproj
$ osbuilder create api -b qa-apiserver --kinds task,worker
$ make protoc.apiserver
$ make build BINS=qa-apiserver
$ _output/platforms/linux/amd64/qa-apiserver# 重启服务端
运行客户端测试$ go run examples/client/worker/main.go
输出示例:Creating new worker...
Worker created successfully with ID: worker-w6irkg
Listing workers...
Found 2 workers in total.
Deleting worker with ID: worker-w6irkg...
Worker deleted successfully.
整个过程无需手写样板代码,新增资源只需一条命令,增删查改操作全部自动生成!
工具特点总结
特性说明
一键生成支持多框架、多类型服务项目生成
高度规范自动生成代码结构统一,风格统一
高扩展性支持新增 REST 资源,无需手动改代码
高效率几分钟内即可搭建完整项目,接入业务
配套课程《Go 项目开发中级实战课》同步教学
当前使用方式与开放情况目前 osbuilder 工具仍处于迭代中,仅对 云原生 AI 实战营成员开放使用。后续版本将支持更多框架(如: kitex、hertz、kratos、go-zero 等)以及 AI 编程辅助能力。如何深入学习 osbuilder?你可以加入我主理的实战社区「云原生 AI 实战营」,学习完整的:
[*]Go 项目开发实战课
[*]osbuilder 使用方法与源码解析
[*]AI 编程与云原生技术融合实战项目
结语osbuilder 是我认为目前 Go 开发中最具效率革命性的脚手架之一。对于初中级开发者来说,它不仅能让你更快落地项目,也能通过规范的代码生成,带你掌握更标准的项目设计方式。希望这篇文章能对你有所启发,如果你对 Go、云原生、AI 感兴趣,欢迎关注我或加入实战营,一起成长!
页:
[1]