Cago 一个快速开发的集成式框架.使用模块化的开发模式,每一个组件都可以单独的调用.
Cago 只对社区工具进行集成,大大减少迁移难度和学习成本,我们不生产代码,我们只是方案的搬运工.
使用 go 的struct来声明 API 和 swagger 文档,可以通过脚手架来帮助你生成相关内容.
你可以通过简单示例来快速的了解 Cago 的使用。你也可以复制这个示例来创建你的项目。
你可以安装脚手架来帮助你生成代码。
cago 提供了gitlab-ci、golanglint-ci和
Kubernetes helm的 CI/CD 配置文件,可以快速帮你实现 CI/CD.
当本地调试时也可以使用docker-compose.yaml启动调试环境.
可以使用etcd作为配置中心,也支持文件作为配置启动。
大多数组件都是基于社区工具进行封装,方便使用。
Cago使用三层架构,并混合了DDD的思想,推荐使用下面的目录结构。你也可以根据自己的需求来调整目录结构。
- cmd/app/main.go项目的入口
- configs- config.yaml配置文件
- ...其他配置文件,也可以写配置读取方法,其它包调用:- configs.GetConfig().XXX
 
- docs文档目录,包括 swagger api 文档、设计文档等
- deploy部署资源文件
- internal内部包- apiAPI 请求结构体- example/example.goapi请求与返回结构
- router.go路由定义
 
- controller控制器目录,API请求会调用控制器,做一些数据处理校验逻辑
- model数据模型- entity数据库实体模型,推荐使用充血模型
- xxx.go一些数据模型的定义
 
- pkg项目内通用的模块- code错误码定义
- utils工具包
 
- repository数据库操作
- service服务接口
- task任务模块- crontab定时任务
- queue消息队列- handler消息队列处理器
- message消息定义
- xxx.go消息队列定义
 
- task.go任务定义
 
 
- migrations数据库迁移文件
- pkg公共的模块,可以被其它项目引用
- .golangci.ymlgolangci-lint 配置文件
- Makefile项目的 Makefile 文件
- GoFrame
- GoMicro