shenyi
管理员
管理员
  • UID1
  • 粉丝22
  • 关注0
  • 发帖数414
阅读:4096回复:6

Go web开发之自研gin脚手架和精简版领域驱动整合(文档已上线)

楼主#
更多 发布于:2020-07-23 15:58
   本帖来自于《Go gin脚手架使用和进化
    之前我们在gin的基础上做了脚手架课程(戳这里),加入控制器、中间件、注解、表达式、简单依赖注入功能等。目前代码已经传到了github上,由于之前录课程时做的比较仓促,很多代码需要改进,因此目前开始细节优化和重构,并同步更新讲解视频
   代码地址  https://github.com/shenyisyn/goft-gin

  文档地址:https://65480539.gitbook.io/goft/
    
     目前代码还在修改和重构中,后期还需要加入redis脚手架模块、ES脚手架、权限管理等。大家敬请期待,使之最终能够满足实际开发需要
  目前架构如下



   顺便录一些使用课程(附带一些简单教学),欢迎大家提需求,和提交issue。 视频和代码全部是免费的,直接点击,无需登录


第二章:简化和修改版的领域驱动 (本章带点教学的味道。)
第16讲:超简领域驱动模型入门:基本分层
DDD很火,我们的脚手架怎能少了它。由于Go语言的一些特征,我们做了很大简化。本章做个精简版说明,然后撸代码

第17讲:领域层:用户实体编写和值对象(初步)
我们先从领域层开始,以用户登录注册和日志为例。展开领域层的实体编写

第18讲:领域层:用户实体和值对象(2)--构造函数
承接上节课,我们完成领域层实体构造函数的编写

第19讲:领域层:实体接口、聚合的概念补充下上节课,我们把实体加入接口。由于Go没有继承,因此今天只是演示种写法。并初步认识聚合

第20讲:领域层:初步划分聚合(用户为例)
沿着上节课,我们以用户为例,简单划分下用户聚合

第21讲:领域层:仓储层(Repository)、基础设施层在我们上节课的基础上,扩展出仓储层。并且初步接触下基础设施层对仓储层的作用

第22讲:领域层:聚合方法示例(用户为例)
在上节课的基础上,我们做个代码示例。其中做法也做了一定修改和简化,使之更适合我们的项目需求

第23讲:领域层之:领域服务层的基本使用
领域层基本构建完毕,今天补充下服务层的基本用法

第24讲:应用层入门(Application):DTO数据传输对象
本课时进入应用层的讲解,先说下DTO的基本作用

第25讲:应用层入门:DTO和实体的映射
上节课建立了DTO对象,今天演示下和实体之间的映射

第26讲:应用层:应用服务层的基本用法、超简案例演示
应用服务层也是很重要的一层,它是领域层和展现出的枢纽。今天写个超简案例做下演示

第27讲:代码落地(1)进入interface层:脚手架开始发挥作用
今天这课时我们终于进入实际的功能开发和展现,我们的脚手架终于要开始发挥作用了

第28讲:interface层:异常的处理的方法
我们尽可能的不要在interface层出现过多的if else判断。尤其是类似error的处理要做封装,今天演示套路

第29讲:引入GORM、仓储层取值
今天我们初步把基础层、展现层、领域层和应用层连接在了一起

第30讲:代码落地(2):实体“充血”和改造
今天我们继续进行领域驱动的代码落地。根据上面两课时的内容进行实体改造


第31讲:代码落地(3):值对象赋值和方法
我们的实体包含了值对象,我们也需要对值对象进行“充血”


第32讲:代码落地(4):多实体联合操作
为了过渡到下节课的聚合操作。今天我们先用“不是太正确的”方式操作多实体联合业务


第33讲:代码落地(5):设置聚合对象的方法
第一阶段代码已经完结。在我们后面实训课程中再次进行补充和进化. 本课程文档已上线,地址:https://65480539.gitbook.io/goft/


--------------------------------------------------------------------------华丽的分割线



第一章:控制器
第1讲:控制器的使用:返回String和JSON
直接开门见山。先讲下控制器的使用

第2讲:中间件的使用(1):判断必要参数
今天演示下中间件的使用方式。在执行控制器方法前可以xxoo

第3讲:中间件的使用(2):修改响应内容
当执行完成控制器方法后进行响应值的修改

第4讲:路由级的中间件(1):基本使用
原生gin的中间件无法定位到具体的URL。改造后目前支持路由级的中间件,支持绑定具体的URL进行中间件执行

第5讲:路由级的中间件(2):参数验证和业务分离(上)
今天顺便做个例子,请求控制的业务代码常规来讲应该怎么写

第6讲:路由级的中间件(2):参数验证和业务分离(下)
今天我们把业务代码和参数验证进行分离,原理也是使用路由级中间件来完成

----------------------------你们要的ORM来了
第7讲:依赖注入和ORM 使用 (Gorm)
重写了IoC。实现控制器注入,并演示ORM注入的方式

第8讲:ORM执行简化:直接返回SQL语句(GORM)
目前支持在控制器中直接返回SQL,即可自动JSON输出

第9讲:ORM执行简化:控制器直接返回SQL语句(XORM)
上节课我们注入GORM。假设你不想使用GORM。那么今天提供XORM的适配器写法

第10讲:控制器返回SQL语句:支持参数
我们在控制器只返回SQL即可输出JSON,今天支持参数,防止注入风险

第11讲:控制器返回SQL语句:支持自定义JSON字段
沿着上节课。今天我们支持自定义JSON字段的输出

第12讲:DAO层示例:用户DAO的写法
今天演示下 我们脚手架下DAO层的写法

第13讲:Service层示例:用户Service层的基本写法
有了上节课基础,我们进而演示下Service层的写法

第14讲:Service层示例:用户登录示例
趁热打铁,再来个用户登录示例

第15讲:ORM简化:自定义输出key、Query执行
应网友要求做了一些功能的支持,可以在控制器中直接获取Query结果
 
会讲故事的程序员
mrchenzifan
老生
老生
  • UID1054
  • 粉丝0
  • 关注0
  • 发帖数1
沙发#
发布于:2020-07-24 08:21
gin 脚手架好像免费的。现在都不免费!
shenyi
管理员
管理员
  • UID1
  • 粉丝22
  • 关注0
  • 发帖数414
板凳#
发布于:2020-08-11 15:29
8.11 更新ORM、依赖注入部分
会讲故事的程序员
hanmin2020
新生
新生
  • UID1812
  • 粉丝0
  • 关注0
  • 发帖数3
  • 社区居民
地板#
发布于:2020-10-24 12:51
课程的报错问题
到了第三节,token哪里直接报错,老师能说一下怎么解决吗
shenyi
管理员
管理员
  • UID1
  • 粉丝22
  • 关注0
  • 发帖数414
4楼#
发布于:2020-10-24 14:44
hanmin2020:到了第三节,token哪里直接报错,老师能说一下怎么解决吗回到原帖
报什么错。 可以加QQ群提问,更方便些
会讲故事的程序员
hanmin2020
新生
新生
  • UID1812
  • 粉丝0
  • 关注0
  • 发帖数3
  • 社区居民
5楼#
发布于:2020-10-25 11:04
关于报错问题
OK 已经找到群了
[hanmin2020于2020-10-25 13:31编辑了帖子]
hanmin2020
新生
新生
  • UID1812
  • 粉丝0
  • 关注0
  • 发帖数3
  • 社区居民
6楼#
发布于:2020-10-25 11:15
OK  找到群了
[hanmin2020于2020-10-25 13:03编辑了帖子]
游客

返回顶部