阅读:20393回复:6
Go web开发之自研gin脚手架和精简版领域驱动整合(文档已上线)
本帖来自于《Go gin脚手架使用和进化》
之前我们在gin的基础上做了脚手架课程(戳这里),加入控制器、中间件、注解、表达式、简单依赖注入功能等。目前代码已经传到了github上,由于之前录课程时做的比较仓促,很多代码需要改进,因此目前开始细节优化和重构,并同步更新讲解视频 代码地址 https://github.com/shenyisyn/goft-gin 文档地址:https://www.yuque.com/jtthink/xrb1ph 目前代码还在修改和重构中,后期还需要加入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结果 |
|
|
地板#
发布于:2020-10-24 12:51
课程的报错问题
到了第三节,token哪里直接报错,老师能说一下怎么解决吗 |
|
4楼#
发布于:2020-10-24 14:44
hanmin2020:到了第三节,token哪里直接报错,老师能说一下怎么解决吗回到原帖报什么错。 可以加QQ群提问,更方便些 |
|
|
5楼#
发布于:2020-10-25 11:04
关于报错问题
OK 已经找到群了 [hanmin2020于2020-10-25 13:31编辑了帖子]
|
|
6楼#
发布于:2020-10-25 11:15
OK 找到群了
[hanmin2020于2020-10-25 13:03编辑了帖子]
|
|