README.md
4.2 KB
天联共创
项目架构
- 基于REST Full的微服务架构
代码仓库及相关文档
项目规范
- 领域描述语言文档位置:document/allied-creation-cooperation/
- GIT流程:里程碑->问题->功能分支->代码审查->合并分支
- 开发分支命名规范:dev-姓名全拼
- 接口规范:API交互规范
- 接口版本号:v1
- 数据交互规范:数据交互格式标准
项目使用框架
- HTTP框架:Beego
- ORM框架:go-pg
- 数据存储:PostgreSQL
- 项目结构分层:六边形架构(接口适配器模式)
- 消息中间件:kafka
项目整体结构
├─conf 项目配置文件
├─deploy 项目部署文件
├─document 项目dsl文档、openapi文档、diagram图片
├─pkg
│ ├─application 应用服务层(调度编排仓储、dao、领域服务等,完成User Case)
│ │ ├─xxx xxx
│ │ ├─factory 工厂类,实例具体的实现(数据仓储)
│ │ └─xxx xxx
│ ├─domain 领域模型层(核心数据处理,接口定义)
│ │ ├─event 领域事件定义
│ │ └─service 领域服务定义
│ ├─infrastructure 基础设施层
│ │ ├─dao 特殊的数据库操作
│ │ ├─domainService 实现领域服务(操作多个领域对象,实现领域内的业务逻辑)
│ │ ├─pg 数据库模型定义
│ │ ├─repository 数据仓储具体实现(对应domain定义数据库的数据存储接口)
│ │ └─serviceGateway 其他系统服务调用
│ ├─log
│ └─port 用户接入层(http接入)
│ └─beego beego接入
└─vendor 包缓存
领域驱动设计-战略建模
领域
限界上下文
上下文映射
领域驱动设计-战术建模
实体
值对象
聚合根
领域服务
领域事件
领域驱动设计工程实现
模块
领域对象
资源库
防腐层
领域服务
数据流转
上下文集成
分离领域
功能模块实现
领域事件发布流程
DTO模块开发
标准产品组工具使用
- 设置全局变量(替换YOUR-USER-PATH为你真实的项目路径)
1.生成路径(项目生成路径):/YOUR-USER-PATH/go/src/
2.eggs根目录路径(领域描述语言DSL文档路径生成或引用路径):/YOUR-USER-PATH/go/src/allied-creation-cooperation/document/
3.egg名称(通常为项目名称,同样是DSL文件夹名称):allied-creation-cooperation
- 应用描述语言生成
1.应用描述语言egg脚手架生成
2.生成属性(Attribute)
3.生成模式(Schema)
4.生成服务(Service)
5.生成接口(Api)
- 具体工程生成
1.生成接口文档(OpenApi)
2.生成项目代码脚手架
3.生成领域模型
4.生成应用服务
5.生成Http协议接口
- Tips
1.代码生成器服务端500错误调试技巧
在任务管理其中关闭由标准化平台带起的eggcode.exe,在命令行通过命令eggcode.exe http -p 9099启动生成器服务,这样就可以打印出生成器500错误的具体信息,关键还是在编写dsl时要细心,不需要的配置整体删干净,需要的配置写完整,注意属性名不要和golang的关键字或者保留字冲突,例如:type、no
2.集成调试技巧
Describe前面添加F可以针对当前用例进行测试,同样的It前面增加F也可以针对一个Describe中的不同IT进行测试,F的意思为Focus,另外还有其他标记如:P(Pending) or X,详情 参考 Ginkgo官方文档The Spec Runner章节