这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在日常 Go 项目开发中,你是否经常遇到以下痛点: 如果你也面临这些问题,那今天要介绍的这个项目开发脚手架,绝对能帮你节省大量时间精力,把开发效率提升一个数量级!
项目背景: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 感兴趣,欢迎关注我或加入实战营,一起成长! |