README
===========================
go-ddd是一个遵循领域驱动设计(DDD)的Golang脚手架项目,旨在展示如何构建易于开发、维护且易于使用的Go应用程序,尤其是从长远来看!
- 规范开发流程:写代码之前,必须先做数据库设计以及接口文档设计,
- 减少重复开发工作:接口路由自动生成,数据库表Model自动生成,常见的CRUD只需要简单几行代码
- 专注业务:主要业务逻辑集中在领域层(Domain),业务逻辑与产品需求遵循同一套设计语言
- 代码易读:遵循领域驱动设计(DDD)模式,规范代码分层
- 自动根据数据库表生成Model
- 自动根据OpenAPI3.0接口文档生成路由
- 遵循领域驱动设计(DDD)模式
- 使用go-chi路由:轻量,快,扩展性好,完全兼容标准库net/http
- 使用Go语言的热加载工具: 监听文件或目录的变化,自动编译,重启程序,大大提高开发期的工作效率
- 使用spf13/cobra,提供了简单的接口来创建命令行程序
脚手架目录遵循领域驱动设计(DDD)模式
这是定义应用程序的域和业务逻辑的地方
此层包含独立于我们的应用程序而存在的所有内容:外部库,数据库引擎等。
该层用作域和界面层之间的通道。将请求从接口层发送到域层,由域层处理请求并返回响应。
该层包含与其他系统交互的所有内容,例如Web服务,RMI接口或Web应用程序以及批处理前端。
路由中间件:go-chi
go get -u github.com/go-chi/chi/v5
数据库中间件:sqlboiler
安装ORM
go install github.com/volatiletech/sqlboiler/v4@latest
安装驱动
postgresql驱动
go install github.com/volatiletech/sqlboiler/v4/drivers/sqlboiler-psql@latest
mysql驱动
go install github.com/volatiletech/sqlboiler/v4/drivers/sqlboiler-mysql@latest
接口代码生成器:oapi-codegen
安装
go get github.com/deepmap/oapi-codegen/cmd/oapi-codegen
服务热启动:air
binary will be $(go env GOPATH)/bin/air
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
or install it into ./bin/
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s air -v
命令行工具:spf13/cobra
安装
go get -u github.com/spf13/cobra
引用
import "github.com/spf13/cobra"
air
or
./bin/air