本文主要是介绍gocore-v2框架-脚手架生成项目结构介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Github
官方文档地址-持续更新中
通过脚手架可以快速构建项目,无需从0开始创建目录结构,无需复制历史项目统一替换项目名,通过一行命令就能快速生成项目结构和基础骨架代码,并且融入接口开发理念ADM(Api-Domain-Model)分层方式来进行开发规范的约束。
目录结构如下:
.
├── Dockerfile #docker镜像打包
├── README.md #项目介绍
├── app
│ ├── api #api接口入口
│ │ └── user.go
│ ├── cronjob #定时任务,业务逻辑处理
│ │ └── sync_user.go
│ ├── def #api接口请求参数和响应参数声明
│ │ └── def.go
│ ├── domain #最终业务逻辑处理
│ │ └── user.go
│ ├── errcode #错误码声明
│ │ └── errcode.go
│ ├── job #一次性任务,常驻任务,业务逻辑
│ │ └── init_user.go
│ ├── model
│ │ └── app #model目录,app为数据库名称
│ │ ├── mysql_client.go #数据库db建表,获取db实例
│ │ └── user.go #model文件,user是表名称
│ └── routes
│ └── routers.go #路由规则设置
├── cmd #程序启动入口
│ ├── api.go #api接口启动命令
│ ├── cron.go #定时任务启动命令
│ ├── init.go #配置,数据库,redis等初始化
│ └── job.go #一次性任务,常驻任务启动命令
├── common #存放全局变量,公共方法
├── conf #配置文件目录
│ ├── base.go #基础通用配置,最终会合并到项目配置中
│ ├── const.go #全局常量
│ └── local.go #本地配置环境变量为local时会使用
├── go.mod
├── go.sum
├── gocore.yaml #gocore项目生成配置文件
├── main.go #程序入口
└── pkg #公共工具包
ADM(Api-Domain-Model)
项目目录结构遵循了一定的开发理念。
Api层可以理解为是请求开始结束以及组合业务的地方
- 主要负责以下几件事情:
- 获取请求参数并且验证请求参数的有效性
- 对Domain领域层的实现进行拼接来组成整个接口的业务
- 对于返回结果进行处理
- Api接口层应该做:
- 对用户登录态进行必要的检测
- 控制业务场景的主流程,创建领域业务实例,并进行调用
- 进行必要的日志纪录
- 返回接口结果
- Api接口层不应该做:
- 进行业务规则的处理或者计算
- 关心数据是否使用缓存,或进行缓存相关的直接操作
- 直接操作数据库
Domain层负责处理具体业务逻辑
- 将复杂业务拆分代码复用:
- 一个方法只完成一件事情,复杂逻辑应该被拆分
- Domain层尽量减少互相之间的调用,应该由API层拼接(API层能够一眼看出整个接口要做哪几件事)
- 核心单测集中在Domain层中进行
Model层负责获取数据
- 统一数据获取入口提升扩展性:
- 每个方法只完成一件事情,比如GetInfoById、UpdateNameById、GetCountUser
- 避免定义非常通用的方法,比如where条件以字符串传递,容易导致SQL注入问题
- 只需要修改一个文件就可以对数据结构调整或缓存进行优化,不用修改业务逻辑层
这篇关于gocore-v2框架-脚手架生成项目结构介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!