课程简介

Go开发工程师全新版视频课程,由乐学编程课堂网精心整理发布完结无密版。未来3-5年,Go语言势必成为企业高性能项目中不可替代的语言,转型Go开发,掌握第二语言,现在就是最好的时机!本课系统讲解了go体系化知识,从基础到项目实战再到重构,带你完成技术与项目实战双重提升。

相关课程

极客时间 – Go进阶训练营第5期

极客时间-Go实战训练营0期

慕课网Go开发工程师全新版

课程实战项目

从0到1开发企业级微服务项目,上手分布式开发,收获全流程开发能力。通过一个完善的电商系统快速体验系统开发全流程,熟悉web开发、从0到1熟悉微服务开发全流程,熟知分布式开发细节,把Go基础知识融会贯通,体验企业级项目全流程拓宽技术广度。

慕课网Go开发工程师全新版

深入Go工程化实践,提升自研能力,技术深度提升。项目简介:自研微服务框架-gmicro基于以上项目,带你从0到1自研微服务框架,熟悉底层细节、通过设计模式提高代码质量,源码解读,更规范的代码设计、更深入的底层细节理解。熟悉系统上k8s部署的完整部署流程,让你加强技术深度。

慕课网Go开发工程师全新版

课程目录

.
├── 01-阶段一:Go语言基础入门和并发编程/
│   ├── 第01周 Go基础知识入门/
│   │   ├── 第1章2022新版go工程师体系课导学以及Go的发展/
│   │   │   └── 第1章2022新版go工程师体系课导学以及Go的发展/
│   │   │   ├── [ 29M] 1-1Go开发工程师体系课全新版导学更多资源.mp4
│   │   │   ├── [ 27M] 1-2go语言介绍更多资源.mp4
│   │   ├── 第2章go开发环境搭建/
│   │   │   └── 第2章go开发环境搭建/
│   │   │   ├── [ 33M] 2-1go的安装更多资源.mp4
│   │   │   ├── [ 29M] 2-2goland安装和快捷键更多资源.mp4
│   │   │   ├── [ 22M] 2-3go开发之hello-world更多资源.mp4
│   │   ├── 第3章变量和常量/
│   │   │   └── 第3章变量和常量/
│   │   │   ├── [ 43M] 3-1如何定义变量更多资源.mp4
│   │   │   ├── [ 23M] 3-2常量的定义和使用更多资源.mp4
│   │   │   ├── [ 32M] 3-3iota的使用细节更多资源.mp4
│   │   │   ├── [8.2M] 3-4匿名变量的定义和用途更多资源.mp4
│   │   │   ├── [ 18M] 3-5变量的作用域更多资源.mp4
│   │   ├── 第4章go的基础数据类型/
│   │   │   └── 第4章go的基础数据类型/
│   │   │   ├── [ 42M] 4-1数值、浮点数和字符类型更多资源.mp4
│   │   │   ├── [ 27M] 4-2基本类型的转换更多资源.mp4
│   │   │   ├── [ 44M] 4-3format进行格式化转换更多资源.mp4
│   │   │   ├── [ 43M] 4-4运算符和表达式更多资源.mp4
│   │   ├── 第5章字符串基本操作/
│   │   │   └── 第5章字符串基本操作/
│   │   │   ├── [ 18M] 5-2转义符是什么?更多资源.mp4
│   │   │   ├── [ 35M] 5-3格式化输出更多资源.mp4
│   │   │   ├── [ 14M] 5-4高性能字符串拼接-strings.builder更多资源.mp4
│   │   │   ├── [8.5M] 5-5字符串的比较更多资源.mp4
│   │   │   ├── [ 50M] 5-6字符串操作常用方法更多资源.mp4
│   │   └── 第6章条件判断和for循环/
│   │   └── 第6章条件判断和for循环/
│   │   ├── [ 25M] 6-1if条件判断更多资源.mp4
│   │   ├── [ 17M] 6-2for循环基础用法更多资源.mp4
│   │   ├── [ 14M] 6-3for循环打印九九乘法表更多资源.mp4
│   │   ├── [ 34M] 6-4forrange的循环用法更多资源.mp4
│   │   ├── [ 11M] 6-5for循环的continue和break语句更多资源.mp4
│   │   ├── [ 14M] 6-6goto语句的基本用法更多资源.mp4
│   │   ├── [ 26M] 6-7switch语法更多资源.mp4
│   ├── 第02周容器,go编程思想/
│   │   ├── 第1章数组、切片和map/
│   │   │   └── 第1章数组、切片和map/
│   │   │   ├── [ 57M] 1-10切片的底层存储原理更多资源.mp4
│   │   │   ├── [ 29M] 1-11map的初始化和赋值更多资源.mp4
│   │   │   ├── [ 17M] 1-12map进行for循环遍历的坑更多资源.mp4
│   │   │   ├── [ 22M] 1-13判断map中是否存在元素和删除元素更多资源.mp4
│   │   │   ├── [ 19M] 1-14list和slice的区别更多资源.mp4
│   │   │   ├── [ 34M] 1-15list的基本用法更多资源.mp4
│   │   │   ├── [ 23M] 1-1数组的基本用法更多资源.mp4
│   │   │   ├── [ 17M] 1-2数组的初始化更多资源.mp4
│   │   │   ├── [ 27M] 1-3多维数组更多资源.mp4
│   │   │   ├── [ 15M] 1-4切片的定义和赋值更多资源.mp4
│   │   │   ├── [ 29M] 1-5切片的多种初始化方式更多资源.mp4
│   │   │   ├── [ 19M] 1-6切片的数据访问更多资源.mp4
│   │   │   ├── [ 14M] 1-7通过省略号添加多个元素到切片更多资源.mp4
│   │   │   ├── [ 25M] 1-8切片的元素删除和拷贝更多资源.mp4
│   │   │   ├── [ 13M] 1-9为什么需要懂切片的原理更多资源.mp4
│   │   ├── 第2章函数/
│   │   │   └── 第2章函数/
│   │   │   ├── [ 32M] 2-1函数的定义更多资源.mp4
│   │   │   ├── [ 23M] 2-2函数的可变参数更多资源.mp4
│   │   │   ├── [ 45M] 2-3函数一等公民特性更多资源.mp4
│   │   │   ├── [ 26M] 2-4go函数的闭包特性更多资源.mp4
│   │   │   ├── [ 25M] 2-5defer的应用场景更多资源.mp4
│   │   │   ├── [ 15M] 2-6go的error设计理念更多资源.mp4
│   │   │   ├── [ 34M] 2-7如何正确使用recover和panic更多资源.mp4
│   │   ├── 第3章结构体/
│   │   │   └── 第3章结构体/
│   │   │   ├── [ 36M] 3-1type关键字的用法更多资源.mp4
│   │   │   ├── [ 27M] 3-2结构体的定义和初始化更多资源.mp4
│   │   │   ├── [ 15M] 3-3匿名结构体更多资源.mp4
│   │   │   ├── [ 23M] 3-4结构体嵌套更多资源.mp4
│   │   │   ├── [ 31M] 3-5结构体定义方法更多资源.mp4
│   │   ├── 第4章指针/
│   │   │   └── 第4章指针/
│   │   │   ├── [ 40M] 4-1指针的定义和使用更多资源.mp4
│   │   │   ├── [ 21M] 4-2指针的初始化更多资源.mp4
│   │   │   ├── [ 28M] 4-3通过swap交换指针的值更多资源.mp4
│   │   │   ├── [ 36M] 4-4nil在go中的细节更多资源.mp4
│   │   └── 第5章接口/
│   │   └── 第5章接口/
│   │   ├── [ 25M] 5-1什么是鸭子类型更多资源.mp4
│   │   ├── [ 23M] 5-2如何定义接口更多资源.mp4
│   │   ├── [ 27M] 5-3多接口的实现更多资源.mp4
│   │   ├── [ 23M] 5-4通过interface解决动态类型传参更多资源.mp4
│   │   ├── [ 16M] 5-5通过switch语句进行类型判断更多资源.mp4
│   │   ├── [ 21M] 5-6接口嵌套更多资源.mp4
│   │   ├── [ 19M] 5-7接口遇到了slice的常见错误更多资源.mp4
│   └── 第03周Go并发编程和工程管理/
│   ├── 第1章package和gomodules/
│   │   └── 第1章package和gomodules/
│   │   ├── [ 25M] 1-1package的定义和导入更多资源.mp4
│   │   ├── [ 15M] 1-2import各种姿势更多资源.mp4
│   │   ├── [ 30M] 1-3go.mod文件的下载方式更多资源.mp4
│   │   ├── [ 16M] 1-4设置GOProxy国内镜像更多资源.mp4
│   │   ├── [ 33M] 1-5goget、gomod相关命令更多资源.mp4
│   │   ├── [ 18M] 1-6gomodreplace的应用场景更多资源.mp4
│   │   ├── [ 48M] 1-7go编码规范更多资源.mp4
│   ├── 第2章单元测试/
│   │   └── 第2章单元测试/
│   │   ├── [ 24M] 2-1如何写单元测试用例更多资源.mp4
│   │   ├── [8.7M] 2-2如何跳过耗时的单元测试用例更多资源.mp4
│   │   ├── [9.8M] 2-3基于表格驱动测试更多资源.mp4
│   │   ├── [ 28M] 2-4benchmark性能测试更多资源.mp4
│   └── 第3章并发编程/
│   └── 第3章并发编程/
│   ├── [ 25M] 3-10通过channel实现交叉打印更多资源.mp4
│   ├── [ 21M] 3-11监控goroutine的执行更多资源.mp4
│   ├── [ 56M] 3-12select完成对多个channel的监控更多资源.mp4
│   ├── [ 68M] 3-13通过context解决goroutine的信息传递更多资源.mp4
│   ├── [ 34M] 3-14witchvalue、withtimeout的应用场景更多资源.mp4
│   ├── [ 51M] 3-1go并发编程初体验更多资源.mp4
│   ├── [ 39M] 3-2go的gmp调度原理更多资源.mp4
│   ├── [ 20M] 3-3通过waitgroup等待协程的执行更多资源.mp4
│   ├── [ 46M] 3-4通过mutex和atomic完成全局变量的原子操作更多资源.mp4
│   ├── [ 44M] 3-5RWMutex读写锁更多资源.mp4
│   ├── [ 39M] 3-6通过channel进行goroutine之间的通信更多资源.mp4
│   ├── [8.9M] 3-7有缓冲channel和无缓冲channel的应用场景更多资源.mp4
│   ├── [ 27M] 3-8forrange对channel进行遍历更多资源.mp4
│   ├── [ 28M] 3-9单向channel的应用场景更多资源.mp4
├── 02-阶段二:Go电商项目-微服务基础/
│   ├── 第04周 从0开始理解rpc和grpc/
│   │   ├── 第1章开发环境搭建/
│   │   │   └── 第1章开发环境搭建/
│   │   │   ├── [ 19M] 1-10代码提示神器-kite的安装和配置.mp4
│   │   │   ├── [ 19M] 1-1课程学习前的说明-很重要!!.mp4
│   │   │   ├── [ 12M] 1-2课程中需要用到的开发环境介绍.mp4
│   │   │   ├── [ 49M] 1-3windows中安装centos7虚拟机.mp4
│   │   │   ├── [8.2M] 1-4xshell的安装和使用.mp4
│   │   │   ├── [ 19M] 1-5git的安装和配置.mp4
│   │   │   ├── [ 31M] 1-6docker和docker-compose的安装.mp4
│   │   │   ├── [ 27M] 1-7mysql和navicat的安装和配置.mp4
│   │   │   ├── [ 11M] 1-8windows下安装nodejs开发环境.mp4
│   │   │   └── [ 19M] 1-9linux下安装和配置nodejs开发环境.mp4
│   │   ├── 第2章rpc核心概念理解/
│   │   │   └── 第2章rpc核心概念理解/
│   │   │   ├── [ 60M] 2-1gopath开发模式和gomodules开发模式对比.mp4
│   │   │   ├── [ 47M] 2-2go编码规范-1.mp4
│   │   │   ├── [ 37M] 2-3go编码规范-2.mp4
│   │   │   ├── [ 52M] 2-4什么是rpc?rpc开发的挑战是什么?-1.mp4
│   │   │   ├── [ 63M] 2-5什么是rpc?rpc开发的挑战是什么?-2.mp4
│   │   │   ├── [ 42M] 2-6通过http完成add服务端的功能.mp4
│   │   │   ├── [ 20M] 2-7通过http完成add客户端的功能.mp4
│   │   │   └── [ 21M] 2-8rpc架构技术要点.mp4
│   │   ├── 第3章go内置rpc快速开发/
│   │   │   └── 第3章go内置rpc快速开发/
│   │   │   ├── [ 50M] 3-1go快速体验rpc开发.mp4
│   │   │   ├── [ 52M] 3-2替换rpc的序列化协议为json.mp4
│   │   │   ├── [ 24M] 3-3替换rpc的传输协议为http.mp4
│   │   │   ├── [ 54M] 3-4进一步改造rpc调用的代码-1.mp4
│   │   │   └── [ 51M] 3-5进一步改造rpc调用的代码-2.mp4
│   │   └── 第4章grpc快速入门/
│   │   └── 第4章grpc快速入门/
│   │   ├── [ 20M] 4-1什么是grpc和protobuf.mp4
│   │   ├── [ 24M] 4-2grpc开发环境的搭建.mp4
│   │   ├── [ 22M] 4-3goland下配置protobuf插件.mp4
│   │   ├── [ 50M] 4-4protobuf和json的直观对比.mp4
│   │   ├── [ 31M] 4-5为什么我们需要安装protoc和protoc-gen-go.mp4
│   │   ├── [ 67M] 4-6go下grpc快速体验.mp4
│   │   ├── [ 45M] 4-7grpc的流模式的定义.mp4
│   │   └── [ 62M] 4-8grpc的单向流,双向流代码实现.mp4
│   ├── 第05周 grpc和protobuf进阶/
│   │   └── 第1章protobuf和grpc进阶/
│   │   └── 第1章protobuf和grpc进阶/
│   │   ├── [ 71M] 1-10grpc拦截器.mp4
│   │   ├── [ 69M] 1-11通过拦截器和metadata实现grpc的auth认证.mp4
│   │   ├── [ 61M] 1-12grpc的验证器.mp4
│   │   ├── [ 55M] 1-131-12-2grpc的验证器.mp4
│   │   ├── [ 19M] 1-14grpc的状态码.mp4
│   │   ├── [ 31M] 1-15grpc中的错误处理.mp4
│   │   ├── [ 12M] 1-16grpc的超时机制.mp4
│   │   ├── [ 38M] 1-17protoc生成的go的源码里面有什么?.mp4
│   │   ├── [ 36M] 1-1protobuf的基本类型和默认值.mp4
│   │   ├── [ 22M] 1-2optiongo_package的作用.mp4
│   │   ├── [ 46M] 1-3proto文件同步时的坑.mp4
│   │   ├── [ 31M] 1-4proto文件中import另一个proto文件?.mp4
│   │   ├── [ 27M] 1-5嵌套的message对象.mp4
│   │   ├── [ 26M] 1-6protobuf中的enum枚举类型.mp4
│   │   ├── [ 13M] 1-7map类型.mp4
│   │   ├── [ 26M] 1-8使用protobuf内置的timestamp类型.mp4
│   │   └── [ 70M] 1-9grpc的metadata机制.mp4
│   ├── 第06周 yapi文档管理、gorm详解/
│   │   ├── 第1章项目需求分析/
│   │   │   └── 第1章项目需求分析/
│   │   │   ├── [ 14M] 1-1如何启动电商系统和后台管理系统.mp4
│   │   │   ├── [ 14M] 1-2后台管理系统需求.mp4
│   │   │   └── [ 33M] 1-3电商系统需求分析.mp4
│   │   ├── 第2章单体应用到到微服务架构演进/
│   │   │   └── 第2章单体应用到到微服务架构演进/
│   │   │   ├── [ 27M] 2-1单体应用如何部署?.mp4
│   │   │   ├── [ 37M] 2-2单体应用开发痛点.mp4
│   │   │   ├── [ 53M] 2-3单体应用的架构演变.mp4
│   │   │   ├── [ 25M] 2-4服务拆分变动.mp4
│   │   │   ├── [ 27M] 2-5微服务的基本拆分.mp4
│   │   │   ├── [ 33M] 2-6分层微服务架构.mp4
│   │   │   └── [ 60M] 2-7微服务需要解决的问题-重要!!.mp4
│   │   ├── 第3章yapi的安装和配置/
│   │   │   └── 第3章yapi的安装和配置/
│   │   │   ├── [ 27M] 3-1前后端分离的系统开发演变过程.mp4
│   │   │   ├── [ 20M] 3-2接口文档管理之痛.mp4
│   │   │   ├── [ 62M] 3-3yapi的安装和配置.mp4
│   │   │   ├── [ 34M] 3-4yapi基本功能使用.mp4
│   │   │   └── [ 29M] 3-5接口的导入和导出.mp4
│   │   └── 第4章gorm快速入门/
│   │   └── 第4章gorm快速入门/
│   │   ├── [ 64M] 4-10gorm的基本查询.mp4
│   │   ├── [ 35M] 4-11gorm的更新操作.mp4
│   │   ├── [ 38M] 4-12gorm的软删除细节.mp4
│   │   ├── [ 46M] 4-13表的关联插入.mp4
│   │   ├── [ 31M] 4-14通过preload和joins查询多表.mp4
│   │   ├── [ 60M] 4-15hasmany关系.mp4
│   │   ├── [ 53M] 4-16gorm处理多对多的关系.mp4
│   │   ├── [ 43M] 4-17gorm的表名自定义、自定义beforecreate逻辑.mp4
│   │   ├── [ 35M] 4-1什么是orm?如何正确看待orm?.mp4
│   │   ├── [ 42M] 4-2gorm连接数据库.mp4
│   │   ├── [ 40M] 4-3快速体验automigrate功能.mp4
│   │   ├── [ 37M] 4-4gorm的Model的逻辑删除.mp4
│   │   ├── [ 29M] 4-5通过NullString解决不能更新零值的问题.mp4
│   │   ├── [ 55M] 4-6表结构定义细节.mp4
│   │   ├── [ 49M] 4-7通过create方法插入记录.mp4
│   │   ├── [ 32M] 4-8批量插入和通过map插入记录.mp4
│   │   └── [ 39M] 4-9通过take,first、last获取数据.mp4
│   └── 第07周 gin快速入门/
│   └── 第1章gin快速入门/
│   └── 第1章gin快速入门/
│   ├── [ 33M] 1-10表单中文翻译的json格式化细节.mp4
│   ├── [ 43M] 1-11自定义gin中间件.mp4
│   ├── [ 31M] 1-12通过abort终止中间件后续逻辑的执行.mp4
│   ├── [ 30M] 1-13gin的中间件原理源码分析.mp4
│   ├── [ 65M] 1-14gin返回html.mp4
│   ├── [ 51M] 1-15加载多个html文件.mp4
│   ├── [ 37M] 1-17gin的优雅退出.mp4
│   ├── [ 33M] 1-1gin的helloworld体验.mp4
│   ├── [ 25M] 1-3gin的路由分组.mp4
│   ├── [ 53M] 1-4获取url中的变量.mp4
│   ├── [ 53M] 1-5获取get和post表单信息.mp4
│   ├── [ 40M] 1-6gin返回protobuf.mp4
│   ├── [ 52M] 1-7登录的表单验证.mp4
│   ├── [ 44M] 1-8注册表单的验证.mp4
│   └── [ 60M] 1-9表单验证错误翻译成中文.mp4
├── 03-阶段三:从0到1实现完整的微服务框架/
│   ├── 第08周 用户服务的grpc服务/
│   │   └── 第1章用户服务-service开发/
│   │   ├── [ 22M] 1-10通过flag启动grpc服务.mp4
│   │   ├── [ 42M] 1-12测试用户微服务接口.mp4
│   │   ├── [ 14M] 1-13课后作业.mp4
│   │   ├── [ 31M] 1-1定义用户表结构.mp4
│   │   ├── [ 21M] 1-2同步表结构.mp4
│   │   ├── [ 37M] 1-3md5加密.mp4
│   │   ├── [ 63M] 1-4md5盐值加密解决用户密码安全问题.mp4
│   │   ├── [ 31M] 1-5定义proto接口.mp4
│   │   ├── [ 62M] 1-6用户列表接口.mp4
│   │   ├── [ 29M] 1-7通过id和mobile查询用户.mp4
│   │   ├── [ 29M] 1-8新建用户.mp4
│   │   ├── [ 38M] 1-9修改用户和校验密码接口.mp4
│   ├── 第09周 用户服务的web服务/
│   │   ├── 第1章web层开发-基础项目架构/
│   │   │   ├── [ 51M] 1-10viper集成到gin的web服务中.mp4
│   │   │   ├── [ 13M] 1-1新建项目和目录结构构建.mp4
│   │   │   ├── [ 40M] 1-2go高性能日志库-zap使用.mp4
│   │   │   ├── [ 24M] 1-3zap的文件输出.mp4
│   │   │   ├── [ 33M] 1-4集成zap和理由初始到gin的启动过程-1.mp4
│   │   │   ├── [ 45M] 1-5集成zap和理由初始到gin的启动过程-2.mp4
│   │   │   ├── [ 60M] 1-6gin调用grpc服务-1.mp4
│   │   │   ├── [ 77M] 1-7gin调用grpc服务-2.mp4
│   │   │   ├── [ 66M] 1-8配置文件-viper.mp4
│   │   │   ├── [ 59M] 1-9viper的配置环境开发环境和生产环境隔离.mp4
│   │   └── 第2章web层开发-用户接口开发/
│   │   ├── [ 72M] 2-10阿里云发送短信.mp4
│   │   ├── [ 80M] 2-11redis保存验证码.mp4
│   │   ├── [ 82M] 2-12用户注册接口.mp4
│   │   ├── [100M] 2-1表单验证的初始化.mp4
│   │   ├── [ 40M] 2-2自定义mobile验证器.mp4
│   │   ├── [ 40M] 2-3登录逻辑完善.mp4
│   │   ├── [ 23M] 2-4session机制在微服务下的问题.mp4
│   │   ├── [ 39M] 2-5jsonwebtoken的认证机制.mp4
│   │   ├── [ 74M] 2-6集成jwt到gin中.mp4
│   │   ├── [ 54M] 2-7给url添加登录权限验证.mp4
│   │   ├── [ 70M] 2-8如何解决前后端的跨域问题.mp4
│   │   ├── [ 82M] 2-9获取图片验证码.mp4
│   └── 第10周 服务注册发现、配置中心、负载均衡/
│   ├── 第1章注册中心-consul/
│   │   ├── [ 45M] 1-1什么是服务注册和发现以及技术选型.mp4
│   │   ├── [ 55M] 1-2consul的安装和配置.mp4
│   │   ├── [ 44M] 1-3服务注册和注销.mp4
│   │   ├── [ 68M] 1-4go集成consul.mp4
│   │   ├── [ 50M] 1-5为grpc服务添加viper和zap.mp4
│   │   ├── [ 16M] 1-6grpc服务如何进行健康检查?.mp4
│   │   ├── [ 52M] 1-7将grpc服务注册到consul中.mp4
│   │   ├── [ 74M] 1-8gin集成consul.mp4
│   │   ├── [ 44M] 1-9将用户的grpc连接配置到全局共用.mp4
│   ├── 第2章负载均衡/
│   │   ├── [ 52M] 2-1动态获取可用端口.mp4
│   │   ├── [ 75M] 2-2什么是负载均衡,负载均衡的策略有哪些?.mp4
│   │   ├── [ 37M] 2-3常用负载均衡算法.mp4
│   │   ├── [ 53M] 2-4gin从consul中同步服务信息并进行负载均衡-1.mp4
│   │   ├── [ 60M] 2-5grpc从consul中同步服务信息并进行负载均衡-2.mp4
│   │   ├── [ 27M] 2-6gin集成grpc的负载均衡.mp4
│   └── 第3章分布式配置中心/
│   ├── [ 45M] 3-1为什么需要配置中心.mp4
│   ├── [ 26M] 3-2配置中心选型-apollovsnacos.mp4
│   ├── [ 14M] 3-3nacos的安装.mp4
│   ├── [ 31M] 3-4nacos的组、配置集、命名空间.mp4
│   ├── [ 67M] 3-5通过api获取nacos的配置以及nacos的配置更新.mp4
│   ├── [ 94M] 3-6gin集成nacos.mp4
│   ├── [ 35M] 3-7service集成nacos.mp4
├── 04-阶段四:微服务实现电商系统/
│   ├── 第11周 商品微服务的grpc服务/
│   │   └── 第1章商品服务-service服务/
│   │   ├── [ 46M] 1-10品牌新建,删除、更新.mp4
│   │   ├── [ 14M] 1-11轮播图的查询、新增、删除和修改.mp4
│   │   ├── [ 64M] 1-12商品分类的列表接口-1.mp4
│   │   ├── [ 55M] 1-13商品分类的列表接口-2.mp4
│   │   ├── [ 75M] 1-14获取商品分类的子分类.mp4
│   │   ├── [ 21M] 1-15商品分类的新建,删除和更新接口.mp4
│   │   ├── [ 86M] 1-16品牌分类相关接口.mp4
│   │   ├── [ 66M] 1-17商品列表页接口-1.mp4
│   │   ├── [ 56M] 1-18商品列表页接口-2.mp4
│   │   ├── [ 90M] 1-19商品列表页接口-3.mp4
│   │   ├── [ 48M] 1-1需求分析-数据库实体分析.mp4
│   │   ├── [ 67M] 1-20批量获取商品信息、商品详情接口.mp4
│   │   ├── [ 31M] 1-21新增、修改和删除商品接口.mp4
│   │   ├── [ 29M] 1-2需求分析-商品微服务接口分析.mp4
│   │   ├── [ 54M] 1-3商品分类表结构设计应该注意什么?.mp4
│   │   ├── [ 26M] 1-4品牌、轮播图表结构设计.mp4
│   │   ├── [ 58M] 1-5商品表结构设计.mp4
│   │   ├── [ 25M] 1-6生成表结构和导入数据.mp4
│   │   ├── [ 61M] 1-7定义proto接口.mp4
│   │   ├── [ 87M] 1-8快速启动grpc服务.mp4
│   │   └── [ 88M] 1-9品牌列表实现.mp4
│   ├── 第12周 商品微服务的gin层和oss图片服务/
│   │   ├── 第1章gin完成商品服务的http接口/
│   │   │   ├── [ 79M] 1-10商品分类的接口.mp4
│   │   │   ├── [ 52M] 1-11轮播图接口和yapi的快速测试.mp4
│   │   │   ├── [ 27M] 1-12品牌列表页接口.mp4
│   │   │   ├── [ 39M] 1-13品牌分类接口.mp4
│   │   │   ├── [ 74M] 1-1快速将用户的web服务转换成商品的web服务.mp4
│   │   │   ├── [ 38M] 1-2商品的列表页接口-1.mp4
│   │   │   ├── [ 55M] 1-3商品的列表页接口-2.mp4
│   │   │   ├── [ 89M] 1-4如何设计一个符合go风格的注册中心接口.mp4
│   │   │   ├── [ 24M] 1-5gin的退出后的服务注销.mp4
│   │   │   ├── [ 27M] 1-6用户的web服务服务注册和优雅退出.mp4
│   │   │   ├── [ 61M] 1-7新建商品.mp4
│   │   │   ├── [ 34M] 1-8获取商品详情.mp4
│   │   │   └── [ 60M] 1-9商品删除,更新.mp4
│   │   └── 第2章阿里云的oss服务集成/
│   │   ├── [ 20M] 2-1为什么要使用阿里云oss.mp4
│   │   ├── [ 33M] 2-2oss的基本概念介绍.mp4
│   │   ├── [ 62M] 2-3使用代码控制文件上传.mp4
│   │   ├── [ 36M] 2-4前端直传oss的流程.mp4
│   │   ├── [ 84M] 2-5gin集成前端直传文件.mp4
│   │   ├── [ 20M] 2-6为什么我们需要内网穿透.mp4
│   │   ├── [ 44M] 2-7内网穿透技术解决前端直传的回调.mp4
│   │   └── [ 62M] 2-8将oss集成到gin微服务中.mp4
│   ├── 第13周 库存服务和分布式锁/
│   │   ├── 第1章库存服务/
│   │   │   ├── [ 22M] 1-1库存服务的重要性.mp4
│   │   │   ├── [ 37M] 1-2表结构设计.mp4
│   │   │   ├── [ 53M] 1-3proto接口设计.mp4
│   │   │   ├── [ 32M] 1-4快速启动库存服务.mp4
│   │   │   ├── [ 28M] 1-5设置库存和获取库存接口.mp4
│   │   │   ├── [ 42M] 1-6本地数据库事务解决库存扣减的失败问题.mp4
│   │   │   ├── [ 17M] 1-7订单超时归还的重要性.mp4
│   │   │   ├── [ 70M] 1-8测试库存接口.mp4
│   │   │   └── [ 16M] 1-9为所有的商品添加库存信息.mp4
│   │   └── 第2章分布式锁/
│   │   ├── [ 44M] 2-10redsync集成到库存服务中.mp4
│   │   ├── [ 32M] 2-11redis分布式锁源码解析-setnx的作用.mp4
│   │   ├── [ 32M] 2-12redis分布式锁源码解析-过期时间和延长锁过期时间机制.mp4
│   │   ├── [ 20M] 2-13redis分布式锁源码解析-如何防止锁被其他的gorou.mp4
│   │   ├── [ 23M] 2-14redis的分布式锁在集群环境之下容易出现的问题.mp4
│   │   ├── [ 54M] 2-15redlock源码分析.mp4
│   │   ├── [ 28M] 2-1并发场景下的库存扣减不正确的问题.mp4
│   │   ├── [ 56M] 2-2通过锁解决并发的问题.mp4
│   │   ├── [ 26M] 2-5mysql的forupdate语句实现悲观锁.mp4
│   │   ├── [ 25M] 2-6gorm实现forupdate悲观锁.mp4
│   │   ├── [ 37M] 2-7基于mysql的乐观锁实现原理.mp4
│   │   ├── [ 68M] 2-8gorm实现基于mysql的乐观锁.mp4
│   │   └── [ 32M] 2-9基于redsync的分布式锁实现同步.mp4
│   ├── 第14周 和购物车微服务/
│   │   ├── 第1章订单和购物车服务-service/
│   │   │   ├── [ 33M] 1-10订单微服务连接商品和库存微服务.mp4
│   │   │   ├── [ 41M] 1-11调用商品微服务查询商品基本信息.mp4
│   │   │   ├── [ 24M] 1-12调用库存微服务扣减库存.mp4
│   │   │   ├── [ 84M] 1-13通过mysql本地事务确保订单新建过程的顺利.mp4
│   │   │   ├── [ 32M] 1-14更新订单的状态接口.mp4
│   │   │   ├── [ 72M] 1-15订单服务接口调试-1.mp4
│   │   │   ├── [ 65M] 1-16订单服务接口调试-2.mp4
│   │   │   ├── [ 23M] 1-1需求分析.mp4
│   │   │   ├── [ 54M] 1-2订单相关表结构设计.mp4
│   │   │   ├── [ 63M] 1-3proto接口定义.mp4
│   │   │   ├── [ 14M] 1-4启动订单服务.mp4
│   │   │   ├── [ 55M] 1-5购物车列表和添加商品到购物车接口.mp4
│   │   │   ├── [ 34M] 1-6更新购物车、删除购物车记录接口.mp4
│   │   │   ├── [ 46M] 1-7订单列表页接口.mp4
│   │   │   ├── [ 65M] 1-8查询订单详情接口.mp4
│   │   │   └── [ 52M] 1-9新建订单的流程分析.mp4
│   │   └── 第2章订单和购物车服务-web层/
│   │   ├── [ 69M] 2-1快速启动订单服务.mp4
│   │   ├── [ 45M] 2-2购物车列表页接口.mp4
│   │   ├── [ 53M] 2-3添加商品到购物车.mp4
│   │   ├── [ 78M] 2-4更新和删除购物车记录.mp4
│   │   ├── [ 60M] 2-5订单列表页.mp4
│   │   ├── [ 38M] 2-6订单详情接口开发和测试.mp4
│   │   └── [ 37M] 2-7新建订单接口开发和测试.mp4
│   ├── 第15周 支付宝支付、用户操作微服务、前后端联调/
│   │   ├── 第1章支付宝支付/
│   │   │   ├── [ 13M] 1-1支付宝沙箱环境开发流程.mp4
│   │   │   ├── [ 59M] 1-2私钥、公钥的概念以及支付宝如何解决订单的安全性问题.mp4
│   │   │   ├── [ 24M] 1-3支付宝的公钥、私钥和回调url配置.mp4
│   │   │   ├── [ 46M] 1-4生成支付宝的支付url.mp4
│   │   │   ├── [ 68M] 1-5gin集成支付宝支付.mp4
│   │   │   └── [ 70M] 1-6支付宝回调通知url逻辑接口.mp4
│   │   └── 第2章收藏、收货地址、留言服务开发/
│   │   ├── [ 17M] 2-1需求分析.mp4
│   │   ├── [ 28M] 2-2定义用户操作服务的表结构.mp4
│   │   ├── [ 30M] 2-3定义proto接口.mp4
│   │   ├── [ 20M] 2-4启动用户服务.mp4
│   │   ├── [ 73M] 2-5service的handler源码解读.mp4
│   │   ├── [ 50M] 2-6web服务启动.mp4
│   │   ├── [ 69M] 2-7gin的api源码解读.mp4
│   │   └── [ 42M] 2-8通过yapi测试接口.mp4
│   └── 第16周 elasticsearch实现搜索微服务/
│   ├── 第1章elasticsearch常用接口/
│   │   ├── [ 11M] 1-10match_phrase进行短语查询.mp4
│   │   ├── [ 15M] 1-11通过multi_match指定查询字段权重.mp4
│   │   ├── [ 32M] 1-12query_string查询和match_all查询.mp4
│   │   ├── [ 39M] 1-13term查询有哪些需要注意的地方.mp4
│   │   ├── [ 38M] 1-14range区间查询、exists查询、fuzzy模糊查询.mp4
│   │   ├── [ 21M] 1-15bool复合查询-must、must_not、shoul.mp4
│   │   ├── [ 38M] 1-16mapping中的keyword和text类型区别.mp4
│   │   ├── [ 51M] 1-17match查询原理分析-analyzer查询过程.mp4
│   │   ├── [ 38M] 1-18分词对于elasticsearch为什么很重要.mp4
│   │   ├── [ 28M] 1-19ik分词器的安装和使用.mp4
│   │   ├── [ 50M] 1-1我们为什么要用elasticsearch进行搜索.mp4_.mp4
│   │   ├── [ 15M] 1-20自定义分词器词库.mp4
│   │   ├── [ 32M] 1-2安装elasticsearch和kibana.mp4
│   │   ├── [ 12M] 1-3elasticsearch中的基本概念.mp4
│   │   ├── [ 31M] 1-4通过put和post方法添加数据.mp4
│   │   ├── [ 20M] 1-5通过url和querybody查询数据.mp4
│   │   ├── [ 13M] 1-6通过es更新数据的坑.mp4
│   │   ├── [ 33M] 1-7通过bulk和mget批量操作数据.mp4
│   │   ├── [ 40M] 1-8一个完整的查询api是如何的-match查询?.mp4
│   │   └── [ 45M] 1-9es是如何通过倒排索引查询数据的?(1:30-2:30代码.mp4
│   ├── 第2章将elasticsearch集成到项目中/
│   │   ├── [ 59M] 2-10如何通过mysql和es协作完成商品的查询-1.mp4
│   │   ├── [ 71M] 2-11如何通过mysql和es协作完成商品的查询-2.mp4
│   │   ├── [ 31M] 2-12调试商品列表的es搜索.mp4
│   │   ├── [ 63M] 2-13确保商品添加到es中的事务一致性.mp4
│   │   ├── [ 53M] 2-14es实现商品的更新和商品的删除.mp4
│   │   ├── [ 70M] 2-1go实现match查询.mp4
│   │   ├── [ 16M] 2-2将es中的对象转换为struct类型.mp4
│   │   ├── [ 22M] 2-3保存数据到es中.mp4
│   │   ├── [ 19M] 2-4通过go语言完成mapping的新建.mp4
│   │   ├── [ 22M] 2-5有哪些接口需要使用es.mp4
│   │   ├── [ 37M] 2-6mysql和es分别在系统中的角色是什么?.mp4
│   │   ├── [ 24M] 2-7建立商品对应的struct和mapping.mp4
│   │   ├── [ 44M] 2-8启动gin的初始化过程新建index和mapping.mp4
│   │   └── [ 39M] 2-9将mysql中的商品数据同步到es中.mp4
│   └── 第3章前后端联调/
│   ├── [ 26M] 3-1项目启动前的url配置.mp4
│   ├── [ 37M] 3-2后台管理系统-商品列表页联调.mp4
│   ├── [ 51M] 3-3商品详情页联调.mp4
│   ├── [ 28M] 3-4新增商品接口联调.mp4
│   ├── [ 66M] 3-5商品分类联调.mp4
│   ├── [ 19M] 3-6品牌管理联调.mp4
│   ├── [ 34M] 3-7联调只读数据.mp4
│   ├── [ 55M] 3-8电商系统-商品相关功能联调.mp4
│   └── [ 17M] 3-9登录相关页面功能联调.mp4
├── 05-阶段五:分布式系统核心、微服务的部署/
│   ├── 第17周 分布式理论基础、分布式事务解决方案/
│   │   ├── 第1章电商系统中的库存归还、超时归还、事务等/
│   │   │   └── 第1章电商系统中的库存归还、超时归还、事务等/
│   │   │   ├── [ 31M] 1-1为什么订单会有超时机制.mp4
│   │   │   ├── [ 48M] 1-2数据库事务的ACID特性.mp4
│   │   │   ├── [ 18M] 1-3分布式系统中出现哪些故障会导致数据不一致?.mp4
│   │   └── 第2章cap理论和分布式事务解决方案/
│   │   └── 第2章cap理论和分布式事务解决方案/
│   │   ├── [ 45M] 2-1cap理论.mp4
│   │   ├── [ 31M] 2-2BASE理论.mp4
│   │   ├── [ 31M] 2-32pc两阶段提交分布式事务.mp4
│   │   ├── [ 23M] 2-4TCC分布式事务实现方案.mp4
│   │   ├── [ 66M] 2-5TCC分布式事务实现方案-订单服务的tcc接口.mp4
│   │   ├── [ 38M] 2-6TCC分布式事务实现方案-tcc实现难点.mp4
│   │   ├── [ 33M] 2-7基于本地消息的最终一致性方案.mp4
│   │   ├── [ 26M] 2-8基于可靠消息的最终一致性.mp4
│   │   ├── [ 37M] 2-9最大努力通知方案.mp4
│   ├── 第18周 学习rocketmq实现幂等性机制等/
│   │   ├── 第1章mq的应用场景和选型/
│   │   │   └── 第1章mq的应用场景和选型/
│   │   │   ├── [ 43M] 1-1mq的应用场景.mp4
│   │   │   ├── [ 37M] 1-2mq消息队列技术选型.mp4
│   │   ├── 第2章rocketmq快速入门/
│   │   │   └── 第2章rocketmq快速入门/
│   │   │   ├── [ 50M] 2-1rocketmq的安装和配置.mp4
│   │   │   ├── [9.0M] 2-2rocketmq的基本概念.mp4
│   │   │   ├── [ 39M] 2-3rocketmq的消息类型.mp4
│   │   │   ├── [ 39M] 2-4go发送普通消息.mp4
│   │   │   ├── [ 42M] 2-5通过pushconsumer消费消息.mp4
│   │   │   ├── [ 32M] 2-6为什么要使用延迟消息解决库存超时归还问题?.mp4
│   │   │   ├── [ 43M] 2-7通过TransactionProducer发送事务消息.mp4
│   │   │   ├── [ 33M] 2-8测试rocketmq的事务消息.mp4
│   │   ├── 第3章基于可靠消息的最终一致性、订单超时归还/
│   │   │   └── 第3章基于可靠消息的最终一致性、订单超时归还/
│   │   │   ├── [ 29M] 3-10gorm定义具备嵌套对象的列.mp4
│   │   │   ├── [ 77M] 3-11库存服务的sell逻辑修改和归还逻辑重构.mp4
│   │   │   ├── [ 81M] 3-12测试库存服务和库存扣减历史记录.mp4
│   │   │   ├── [ 66M] 3-13测试rocketmq的事务回查后的库存归还.mp4
│   │   │   ├── [ 78M] 3-14在订单服务中发送延时消息解决库存归还的问题.mp4
│   │   │   ├── [100M] 3-15rocketmq中shutdown造成的坑.mp4
│   │   │   ├── [ 48M] 3-1订单新建过程中会出现哪些不可控因素导致数据不一致的问题?.mp4
│   │   │   ├── [ 21M] 3-2先扣减库存和后扣减库存是否能解决分布式事务的问题?.mp4
│   │   │   ├── [ 19M] 3-3tcc在解决库存扣减中的问题.mp4
│   │   │   ├── [ 23M] 3-4基于可靠消息最终一致性方案在库存服务上的不足.mp4
│   │   │   ├── [ 18M] 3-5如何通过基于可靠消息实现库存的一致性.mp4
│   │   │   ├── [ 59M] 3-6在createorder中发送事务消息.mp4
│   │   │   ├── [ 71M] 3-7ExecuteLocalTransaction本地事务的逻.mp4
│   │   │   ├── [ 22M] 3-8本地事务消息回查应该如何做?.mp4
│   │   │   ├── [ 42M] 3-9库存扣减服务中表结构的设计.mp4
│   │   └── 第4章实现接口的幂等性/
│   │   └── 第4章实现接口的幂等性/
│   │   ├── [ 37M] 4-1什么是服务雪崩.mp4
│   │   ├── [ 37M] 4-2超时、重试和幂等性机制.mp4
│   │   ├── [ 19M] 4-3哪些情况下需要考虑幂等性问题.mp4
│   │   ├── [ 46M] 4-4使用grpc-middleware实现grpc调用的重试.mp4
│   │   ├── [ 52M] 4-5常用的幂等性解决方案.mp4
│   ├── 第19周 链路追踪、限流、熔断、降级/
│   │   ├── 第1章链路追踪技术概述/
│   │   │   └── 第1章链路追踪技术概述/
│   │   │   ├── [ 38M] 1-1为什么我们需要链路追踪.mp4
│   │   │   ├── [ 16M] 1-2链路追踪技术选型.mp4
│   │   │   ├── [ 27M] 1-3jaeger的安装和架构介绍.mp4
│   │   │   ├── [ 66M] 1-4opentracing中的tracer、span、span.mp4
│   │   ├── 第2章go集成jaeger/
│   │   │   └── 第2章go集成jaeger/
│   │   │   ├── [ 56M] 2-1go通过jaeger-client发送单个span.mp4
│   │   │   ├── [ 27M] 2-2go发送多级嵌套span.mp4
│   │   │   ├── [ 45M] 2-3go下通过grpc发送span消息.mp4
│   │   │   ├── [ 84M] 2-4gin中添加拦截器实现jaeger注入.mp4
│   │   │   ├── [ 77M] 2-5修改grpc_opentracing源码.mp4
│   │   │   ├── [ 48M] 2-6配置订单服务的web层逻辑.mp4
│   │   │   ├── [ 21M] 2-7grpc集成opentracing的原理.mp4
│   │   │   ├── [140M] 2-8grpc的server端如何获取客户端的span.mp4
│   │   └── 第3章熔断、限流-sentinel/
│   │   └── 第3章熔断、限流-sentinel/
│   │   ├── [ 32M] 3-1什么是限流、熔断和降级.mp4
│   │   ├── [ 17M] 3-2sentinel和hystrix对比.mp4
│   │   ├── [ 82M] 3-3sentinel的qps限流.mp4
│   │   ├── [ 65M] 3-4sentinel的预热和冷启动.mp4
│   │   ├── [ 16M] 3-5sentinel的Throttling配置策略.mp4
│   │   ├── [ 49M] 3-6sentinel的熔断接口.mp4
│   │   ├── [ 44M] 3-7sentinel的熔断接口-基于错误数.mp4
│   │   ├── [ 34M] 3-8sentinel的熔断接口-基于错误率和慢请求.mp4
│   │   ├── [ 42M] 3-9gin集成sentinel实现限流.mp4
│   └── 第20周 api网关、部署/
│   ├── 第1章kong的安装和配置/
│   │   └── 第1章kong的安装和配置/
│   │   ├── [ 18M] 1-1什么是api网关.mp4
│   │   ├── [9.6M] 1-2api网关具备的功能有哪些?.mp4
│   │   ├── [ 37M] 1-3api网关技术选型.mp4
│   │   ├── [ 88M] 1-4kong的安装.mp4
│   ├── 第2章kong的配置/
│   │   └── 第2章kong的配置/
│   │   ├── [ 22M] 2-1kong的8001、800和1337端口号的关系.mp4
│   │   ├── [ 31M] 2-2基本的路由转发配置.mp4
│   │   ├── [ 18M] 2-3kong的service、routes、upstream的.mp4
│   │   ├── [ 30M] 2-4kong集成consul实现服务发现和负载均衡.mp4
│   │   ├── [ 50M] 2-5kong配置jwt实现登录校验.mp4
│   │   ├── [ 33M] 2-6kong配置反爬和ip黑名单.mp4
│   ├── 第3章jenkins入门/
│   │   └── 第3章jenkins入门/
│   │   ├── [ 21M] 3-10定时构建和轮询SCM构建.mp4
│   │   ├── [ 14M] 3-11参数化pipeline构建项目.mp4
│   │   ├── [ 44M] 3-1敏捷开发中的持续集成痛点.mp4
│   │   ├── [ 30M] 3-2安装jenkins和关闭防火墙.mp4
│   │   ├── [ 31M] 3-3jenkins构建服务器流程.mp4
│   │   ├── [ 23M] 3-4安装jenkins常用插件.mp4
│   │   ├── [ 32M] 3-5通过freestyle构建项目.mp4
│   │   ├── [ 38M] 3-6将构建服务器上的代码上传到运行服务器.mp4
│   │   ├── [ 47M] 3-7通过pipeline实现持续集成.mp4
│   │   ├── [ 16M] 3-8通过jenkinsfile管理构建pipeline脚本.mp4
│   │   ├── [ 19M] 3-9通过远程和其他工程触发构建.mp4
│   ├── 第4章通过jenkins部署服务/
│   │   └── 第4章通过jenkins部署服务/
│   │   ├── [ 24M] 4-1有哪些服务器我们需要部署?.mp4
│   │   ├── [ 29M] 4-2前端代码上传到git并启动.mp4
│   │   ├── [ 61M] 4-3nginx中部署vuejs.mp4
│   │   ├── [ 78M] 4-4jenkens部署vuejs项目.mp4
│   │   ├── [ 69M] 4-5通过gobuild构建go微服务.mp4
│   │   ├── [ 24M] 4-6发布go项目到远程服务器上.mp4
│   │   ├── [ 34M] 4-7通过shell脚本启动gin服务.mp4
│   └── 第5章课程总结/
│   └── 第5章课程总结/
│   ├── [ 37M] 5-1课程总结.mp4
├── 06-阶段六:开发规范、设计模式、单元测试/
│   ├── 第21周 开发规范和go基础扩展/
│   │   ├── 第1章开发规范/
│   │   │   ├── [ 20M] 1-10微服务的项目目录规范.mp4
│   │   │   ├── [ 20M] 1-11govet进行代码检测.mp4
│   │   │   ├── [ 77M] 1-12golangci-lint进行代码检测.mp4
│   │   │   ├── [7.2M] 1-1开始后续学习前的说明.mp4
│   │   │   ├── [ 13M] 1-2课程基本开发工具说明-重要!.mp4
│   │   │   ├── [ 22M] 1-3项目开发有哪些规范需要注意.mp4
│   │   │   ├── [ 37M] 1-4项目开发流程.mp4
│   │   │   ├── [ 45M] 1-5git的代码分支管理.mp4
│   │   │   ├── [ 37M] 1-6git的commit规范.mp4
│   │   │   ├── [ 39M] 1-7go的代码规范简介.mp4
│   │   │   ├── [ 46M] 1-8go的项目目录规范.mp4
│   │   │   └── [ 46M] 1-9使用mono-repo还是multi-repo管理项目源码.mp4
│   │   └── 第2章go基础知识扩展/
│   │   ├── [ 17M] 2-1map初始化容易犯的错.mp4
│   │   ├── [ 11M] 2-2常见错误-结构体空指针.mp4
│   │   ├── [ 21M] 2-3常见错误-使用对循环迭代器变量的引用.mp4
│   │   ├── [8.5M] 2-4什么是泛型.mp4
│   │   ├── [ 21M] 2-5go中如何使用泛型.mp4
│   │   ├── [ 22M] 2-6泛型的常见用法.mp4
│   │   └── [ 26M] 2-7泛型的错误用法.mp4
│   └── 第22周 设计模式和单元测试/
│   ├── 第1章设计模式/
│   │   ├── [ 28M] 1-1为什么需要函数选项模式.mp4
│   │   ├── [ 29M] 1-2kratos和grpc中如何使用函数选项模式的.mp4
│   │   ├── [ 36M] 1-3如何实现函数选项模式.mp4
│   │   ├── [ 39M] 1-4单例模式和sync.Once原理.mp4
│   │   ├── [ 25M] 1-5简单工厂模式.mp4
│   │   ├── [ 39M] 1-6抽象工厂模式.mp4
│   │   └── [ 29M] 1-7责任链模式.mp4
│   └── 第2章单元测试/
│   ├── [ 59M] 2-10通过gomonkey进行单元测试.mp4
│   ├── [ 57M] 2-11ginkgo测试框架快速入门.mp4
│   ├── [ 55M] 2-12如何将ginkgo和gomonkey、gomock结合使.mp4
│   ├── [ 27M] 2-1测试金字塔是什么?.mp4
│   ├── [ 23M] 2-2简单回顾一下测试用例.mp4
│   ├── [ 90M] 2-3如何写出方便测试的代码.mp4
│   ├── [ 75M] 2-4通过gomock进行测试用例编码.mp4
│   ├── [ 60M] 2-5通过sqlmock对gorm进行单元测试.mp4
│   ├── [ 56M] 2-6通过ExpectExec和assert判断测试结果.mp4
│   ├── [ 27M] 2-7如何对grpc、redis和rocketmq等进行测试.mp4
│   ├── [ 50M] 2-8gofuzz模糊测试.mp4
│   └── [ 51M] 2-9解决模糊测试发现的bug以及testdata目录用途.mp4
├── 07-阶段七:效率工具开发/
│   └── 第23周 protoc插件开发、cobra命令行/
│   ├── 第1章protoc自定义插件/
│   │   └── 第1章protoc自定义插件/
│   │   ├── [104M] 1-10protoc生成gin的插件.mp4
│   │   ├── [ 92M] 1-1工程实践中如何更好的使用proto文件?.mp4
│   │   ├── [ 55M] 1-2protoc命令如何查询依赖的proto文件.mp4
│   │   ├── [ 22M] 1-3protoc执行的插件加载原理是什么?.mp4
│   │   ├── [ 28M] 1-4proto文件中的package和go_package的作.mp4
│   │   ├── [ 44M] 1-5protoc插件开发原理.mp4
│   │   ├── [100M] 1-6修改protoreflect源码便于调试.mp4
│   │   ├── [ 97M] 1-7gin转发到grpc服务的原理和实现.mp4
│   │   ├── [ 20M] 1-8一些细节的处理和纠正.mp4
│   │   └── [ 90M] 1-9go的template实现动态生成代码.mp4
│   └── 第2章命令行开发神器-cobra/
│   └── 第2章命令行开发神器-cobra/
│   ├── [ 35M] 2-1不同服务的通用性在哪里?.mp4
│   ├── [ 27M] 2-2不使用cobra如何完成项目启动参数检查.mp4
│   ├── [ 27M] 2-3通过cobra简化项目启动.mp4
│   ├── [ 26M] 2-4通过cobra-cli简化开发.mp4
│   └── [ 12M] 2-5为命令添加flag解析.mp4
├── 08-阶段八:深入底层库封装、ast代码生成方案/
│   ├── 第24周 log日志包设计/
│   │   └── 第1章如何设计日志包/
│   │   ├── [ 31M] 1-10自定义的logger是如何实现解耦的.mp4
│   │   ├── [ 30M] 1-11导入已经开发好的log日志包.mp4
│   │   ├── [ 21M] 1-1为什么需要自己去设计日志包.mp4
│   │   ├── [ 36M] 1-2go-zero和kratos中日志的处理.mp4
│   │   ├── [ 40M] 1-3全局logger和传递参数的logger的用法.mp4
│   │   ├── [ 23M] 1-4日志包的基本需求.mp4
│   │   ├── [ 42M] 1-5日志debug、info、error等级别的使用场景.mp4
│   │   ├── [ 15M] 1-6日志打印的实践经验.mp4
│   │   ├── [ 26M] 1-7生产环境中的日志系统架构.mp4
│   │   ├── [ 77M] 1-8自定义log的options.mp4
│   │   ├── [ 65M] 1-9自定义log接口.mp4
│   └── 第25周 ast代码生成工具开发/
│   └── 第25周 ast代码生成工具开发/
│   ├── 第1章如何设计errors错误包/
│   │   └── 第1章如何设计errors错误包/
│   │   ├── [ 77M] 1-10grpc中的error处理.mp4
│   │   ├── [ 44M] 1-11自定义的error放入grpc返回造成的不兼容怎么办.mp4
│   │   ├── [ 62M] 1-12增加fromerror解决grpc转换为内部error.mp4
│   │   ├── [ 21M] 1-13kratos中如何处理errors?.mp4
│   │   ├── [ 70M] 1-1go的error和其他语言的trycatch的区别.mp4
│   │   ├── [ 35M] 1-2常用的errors、fmt和pkgerrors错误处理包.mp4
│   │   ├── [ 20M] 1-3使用errors打印调用栈.mp4
│   │   ├── [ 27M] 1-4使用wrapf保存和打印error错误栈.mp4
│   │   ├── [ 28M] 1-5通过is和as方法判断error的值.mp4
│   │   ├── [ 29M] 1-6http响应应该全部返回200还是返回标准的httpcod.mp4
│   │   ├── [ 47M] 1-7如何设计错误码更加科学.mp4
│   │   ├── [ 22M] 1-8如何自定义错误码.mp4
│   │   ├── [ 83M] 1-9errors实现withcode模式和实现code的注册.mp4
│   └── 第2章通过ast自动生成代码/
│   └── 第2章通过ast自动生成代码/
│   ├── [ 47M] 2-1go的generate自动生成代码.mp4
│   ├── [ 22M] 2-2go的ast包能做什么?.mp4
│   ├── [ 26M] 2-3ast语法树的基本元素.mp4
│   ├── [ 71M] 2-4通过ast包解析变量名和变量的注释.mp4
│   ├── [ 33M] 2-5将ast生成的源码写入文件中.mp4
│   ├── [ 68M] 2-6通过codegen自动生成注册源码.mp4
├── 09-阶段九:自研微服务框架-gmicro/
│   ├── 第26周 三层代码结构/
│   │   └── 第1章三层代码结构规范/
│   │   └── 第1章三层代码结构规范/
│   │   ├── [ 37M] 1-10controller层如何减少对service层的依赖_ev.mp4
│   │   ├── [ 49M] 1-11使用copier简化do和dto之间的拷贝_ev.mp4
│   │   ├── [ 28M] 1-1导入common和app包_ev.mp4
│   │   ├── [ 83M] 1-2通过app启动配置文件映射和flag映射_ev.mp4
│   │   ├── [ 34M] 1-3重构app启动项目_ev.mp4
│   │   ├── [ 28M] 1-4app启动的原理_ev.mp4
│   │   ├── [ 41M] 1-5已有代码存在哪些耦合?_ev.mp4
│   │   ├── [ 67M] 1-6三层代码结构降低代码耦合_ev.mp4
│   │   ├── [ 35M] 1-7service和data层的解耦_ev.mp4
│   │   ├── [ 31M] 1-8DO、DTO、VO这些概念是什么意思?_ev.mp4
│   │   └── [ 87M] 1-9service层的代码如何做到可测试性?_ev.mp4
│   ├── 第27周 grpc服务封装更方便的rpc服务/
│   │   ├── 第1章通用微服务框架需求/
│   │   │   └── 第1章通用微服务框架需求/
│   │   │   ├── [ 31M] 1-1为什么我们需要自己开发微服务框架_ev.mp4
│   │   │   ├── [ 28M] 1-2微服务框架应该具备的功能_ev.mp4
│   │   │   ├── [ 59M] 1-3通过函数选项模式启动app_ev.mp4
│   │   │   ├── [ 46M] 1-4实现服务注册的抽象_ev.mp4
│   │   │   ├── [ 45M] 1-5服务注册的监听实现原理_ev.mp4
│   │   │   └── [ 23M] 1-6如何封装rpc和http服务_ev.mp4
│   │   └── 第2章开发通用的rpc服务/
│   │   └── 第2章开发通用的rpc服务/
│   │   ├── [ 39M] 2-1rpc的server数据模型设计_ev.mp4
│   │   ├── [ 89M] 2-2rpc服务启动过程中的拦截器,rpc接口反射等功能_ev.mp4
│   │   ├── [ 80M] 2-5service的timeout的拦截器实现原理_ev.mp4
│   │   └── [ 34M] 2-6app中如何启动gmicro的rpc服务_ev.mp4
│   ├── 第28周 深入grpc的服务注册、负载均衡原理/
│   │   └── 第1章服务注册、服务发现和负载均衡/
│   │   └── 第1章服务注册、服务发现和负载均衡/
│   │   ├── [ 36M] 1-10通过WithResolvers显示指定resolver_ev.mp4
│   │   ├── [ 95M] 1-11通过观察者模式实现服务发现_ev.mp4
│   │   ├── [ 19M] 1-12测试consul的服务发现功能_ev.mp4
│   │   ├── [ 61M] 1-13grpc的负载均衡架构原理_ev.mp4
│   │   ├── [ 78M] 1-14grpc负载均衡的源码分析_ev.mp4
│   │   ├── [ 46M] 1-15pickfirst和roundrobin源码分析_ev.mp4
│   │   ├── [ 94M] 1-16kratos负载均衡源码解析_ev.mp4
│   │   ├── [ 60M] 1-17负载均衡使用测试_ev.mp4
│   │   ├── [ 39M] 1-1配置服务注册配置_ev.mp4
│   │   ├── [ 60M] 1-2kratos对consul服务注册的封装_ev.mp4
│   │   ├── [ 83M] 1-3将服务注册到consul中_ev.mp4
│   │   ├── [ 56M] 1-4客户端封装的数据结构设计_ev.mp4
│   │   ├── [ 36M] 1-5封装dial方法进行客户端生成_ev.mp4
│   │   ├── [ 44M] 1-6封装client端的timeout拦截器_ev.mp4
│   │   ├── [ 56M] 1-7grpc的服务发现的resolver接口_ev.mp4
│   │   ├── [ 70M] 1-8自定义实现directBuilder实现服务发现_ev.mp4
│   │   └── [ 26M] 1-9grpc的服务发现和负载均衡的原理_ev.mp4
│   ├── 第29周 基于gin封装api服务/
│   │   └── 第1章基于gin封装通用的restserver/
│   │   └── 第1章基于gin封装通用的restserver/
│   │   ├── [ 38M] 1-10基于restserver封装middleware_ev.mp4
│   │   ├── [ 20M] 1-11basic认证、cache认证和jwt认证的需求_ev.mp4
│   │   ├── [ 74M] 1-12如何集成basic、cache和jwt认证服务_ev.mp4
│   │   ├── [ 71M] 1-13basic、cache认证源码解析_ev.mp4
│   │   ├── [ 41M] 1-1设计restserver的通用结构_ev.mp4
│   │   ├── [ 49M] 1-2通过函数选项模式完成newServer_ev.mp4
│   │   ├── [ 84M] 1-3完成restserver的start过程_ev.mp4
│   │   ├── [ 75M] 1-4封装验证翻译器_ev.mp4
│   │   ├── [ 33M] 1-5gmicro在app中分别启动rest和rpc服务_ev.mp4
│   │   ├── [ 45M] 1-6errgroup解决一组task启动的问题_ev.mp4
│   │   ├── [ 62M] 1-7通过errgroup完善restserver和rpcser_ev.mp4
│   │   ├── [ 87M] 1-8restserver启动并测试_ev.mp4
│   │   └── [ 53M] 1-9优雅退出如何通知到rpc和rest的server_ev.mp4
│   ├── 第30周 可观测的终极解决方案/
│   │   └── 第1章opentelemetry实现链路追踪/
│   │   ├── [ 34M] 1-10设计opentelemetry的options.mp4
│   │   ├── [104M] 1-11gmicro集成opentelemetry.mp4
│   │   ├── [ 34M] 1-12log和opentelemetry集成体验.mp4
│   │   ├── [ 27M] 1-13opentelemetry集成log的源码解读.mp4
│   │   ├── [ 76M] 1-14gorm集成opentelemetry.mp4
│   │   ├── [ 22M] 1-15gorm集成opentelemetry的源码解读.mp4
│   │   ├── [ 76M] 1-16gin集成opentelemetry.mp4
│   │   ├── [ 35M] 1-17go-redis集成opentelemetry.mp4
│   │   ├── [ 55M] 1-1opentelemetry的前世今生-重要!.mp4
│   │   ├── [ 47M] 1-2opentelemetry快速体验.mp4
│   │   ├── [ 58M] 1-3SetAttribute设置链路的属性.mp4
│   │   ├── [ 51M] 1-4opentelemetry的系统架构.mp4
│   │   ├── [ 57M] 1-5函数中传递span的context.mp4
│   │   ├── [102M] 1-6opentelemetry通过http完成span的传输.mp4
│   │   ├── [ 78M] 1-7自定义inject和extract源码.mp4
│   │   ├── [ 38M] 1-8grpc集成opentelemetry.mp4
│   │   └── [ 44M] 1-9otelgrpc源码解读.mp4
│   └── 第31周 系统监控核心/
│   └── 第1章监控系统-prometheus、grafana/
│   ├── [ 65M] 1-10rpcserver的interceptor·集成prom.mp4
│   ├── [ 32M] 1-11rpc的client的interceptor·集成pro.mp4
│   ├── [ 55M] 1-12gin集成prometheus.mp4
│   ├── [ 33M] 1-13测试ginmetrics.mp4
│   ├── [ 42M] 1-1监控有哪些指标.mp4
│   ├── [ 25M] 1-2prometheus、grafana架构@乐学编程 lexuecode.com.mp4
│   ├── [ 25M] 1-3安装prometheus和node-exporter.mp4
│   ├── [ 24M] 1-4promql基本语法.mp4
│   ├── [ 29M] 1-5grafana的安装和使用.mp4
│   ├── [ 19M] 1-6导入grafana的模板.mp4
│   ├── [ 18M] 1-7guages和counter指标.mp4
│   ├── [ 17M] 1-8histograms指标.mp4
│   └── [ 36M] 1-9gin集成prometheus.mp4
├── 10-阶段十:基于gmicro重构项目/
│   ├── 第32周 用户、商品服务重构/
│   │   ├── [387M] 1-1 data层接口设计(1139).mp4
│   │   ├── [121M] 1-10 启动服务的bug修复(0311).mp4
│   │   ├── [287M] 1-11 用户服务的api层服务初始化(1008).mp4
│   │   ├── [560M] 1-12 重构login接口(1445).mp4
│   │   ├── [694M] 1-13 用户服务的data层重构(2103).mp4
│   │   ├── [539M] 1-14 重构login的service等代码(1532).mp4
│   │   ├── [998M] 1-15 完成login的controller层重构(2009).mp4
│   │   ├── [549M] 1-16 封装底层的rpc链接(1628).mp4
│   │   ├── [610M] 1-17 封装rpc服务的client端tracing拦截器(1223).mp4
│   │   ├── [552M] 1-18 重构短信发送逻辑(1720).mp4
│   │   ├── [1.2G] 1-19 基于redis的封装(2447).mp4
│   │   ├── [776M] 1-2 userstore接口的实现(2305).mp4
│   │   ├── [683M] 1-20 重构注册接口(1945).mp4
│   │   ├── [900M] 1-21 登录校验(2056).mp4
│   │   ├── [724M] 1-22 调试token解析(1522).mp4
│   │   ├── [209M] 1-23 更新用户信息接口重构(0535).mp4
│   │   ├── [227M] 1-3 重构service层接口实现(0645).mp4
│   │   ├── [382M] 1-4 重构controller层代码-list和通过id查询用户(0915).mp4
│   │   ├── [430M] 1-5 重构controller层代码-通过mobile查询用户(1245).mp4
│   │   ├── [389M] 1-6 重构controller层代码-用户更新和密码校验(1049).mp4
│   │   ├── [615M] 1-7 底层数据库的链接封装(1606).mp4
│   │   ├── [597M] 1-8 mysql的配置和映射启动服务(1612).mp4
│   │   ├── [418M] 1-9 mysql配置文件映射启动(1045).mp4
│   │   ├── [652M] 2-1 定义商品服务的DO模型(1851).mp4
│   │   ├── [680M] 2-10 通过map-reduce完成并发调用控制(1641).mp4
│   │   ├── [1.0G] 2-11 启动goods的service服务(2903).mp4
│   │   ├── [1.3G] 2-12 通过工厂模式改造service和data层(3012).mp4
│   │   ├── [364M] 2-13 启动商品服务(0923)@乐学编程 lexuecode.com.mp4
│   │   ├── [295M] 2-14 完成controller层的商品列表接口(0545).mp4
│   │   ├── [668M] 2-15 调试商品列表页接口(1602).mp4
│   │   ├── [416M] 2-16 gorm打印日志的集成(0851).mp4
│   │   ├── [979M] 2-17 商品服务的api接口重构-1(2236).mp4
│   │   ├── [731M] 2-18 商品服务的api接口重构-2(1418).mp4
│   │   ├── [654M] 2-2 重构商品相关的接口(1217).mp4
│   │   ├── [487M] 2-3 重构商品服务其他接口的data接口(1123).mp4
│   │   ├── [372M] 2-4 商品列表页重构需求分析(1057).mp4
│   │   ├── [551M] 2-5 重构商品服务的es接口(1633).mp4
│   │   ├── [371M] 2-6 重构商品服务的es查询接口(1058).mp4
│   │   ├── [636M] 2-7 重构service层商品列表页接口(1443).mp4
│   │   ├── [1.1G] 2-8 基于事务完成商品的创建(2218).mp4
│   │   └── [239M] 2-9 通过canal消费mysql的binlog完成数据最终一致性的方案(1022).mp4
│   ├── 第33+周 订单服务重构、wire进行ioc控制/
│   │   ├── [506M] 1-1 订单系统data层数据接口定义(1543).mp4
│   │   ├── [1.1G] 1-10 调试新建订单接口(下)(2033).mp4
│   │   ├── [1.1G] 1-2 实现order和购物车的接口重构(2906).mp4
│   │   ├── [590M] 1-3 完成datafactory的重构(1509).mp4
│   │   ├── [316M] 1-4 订单服务的service层重构(1045).mp4
│   │   ├── [1.1G] 1-5 通过saga事务重构分布式事务(2306).mp4
│   │   ├── [626M] 1-6 新建订单和补偿接口实现(1753).mp4
│   │   ├── [1.4G] 1-7 重构controller层的submitorder接口(2628).mp4
│   │   ├── [940M] 1-8 启动订单服务重构(1732).mp4
│   │   ├── [1.2G] 1-9 调试新建订单接口(上)(2250).mp4
│   │   ├── [893M] 2-1 什么是ioc(3003).mp4
│   │   ├── [219M] 2-2 ioc框架选型(1109).mp4
│   │   ├── [337M] 2-3 wire快速入门(1325).mp4
│   │   ├── [878M] 2-4 通过wire重构user的service服务(上)(2236).mp4
│   │   ├── [767M] 2-5 通过wire重构user的service服务(下)(1853).mp4
│   │   ├── [310M] 2-6 通过providerset简化初始化(0833).mp4
│   │   ├── [913M] 2-7 sentinel集成nacos(3103).mp4
│   │   ├── [1.1G] 2-8 集成sentinel和nacos(2349).mp4
│   │   └── [508M] 2-9 调试sentinel集成nacos(1323).mp4
│   └── 第33周 订单、库存等服务重构/
│   ├── [1.1G] 1-1 api服务的service层重构(3007).mp4
│   ├── [724M] 1-2 重构库存服务的data层接口实现(1723).mp4
│   ├── [236M] 1-3 service层重构get和create方法(0750).mp4
│   ├── [1.0G] 1-4 库存扣减接口重构(2416).mp4
│   ├── [597M] 1-5 重构reback库存归还接口(1657).mp4
│   ├── [597M] 2-1 saga分布式事务的原理(2258).mp4
│   ├── [735M] 2-2 各种分布式事务的应用场景(0544).mp4
│   ├── [348M] 2-3 dtm的安装(1027).mp4
│   ├── [828M] 2-4 dtm快速体验saga分布式事务(2509).mp4
│   ├── [782M] 2-5 转账服务的saga事务调试(1756).mp4
│   ├── [1.4G] 2-6 grpc服务的事务编排(2631).mp4
│   ├── [701M] 2-7 基于服务发现完成分布式事务的调度(1338).mp4
│   └── [1.3G] 2-8 子事务屏障和gin集成测试(2549).mp4
├── 11-阶段十一:基于k8s部署项目/
│   ├── 第34+周 devops和k8s/
│   │   ├── [261M] 1-1 基于docker进行go build构建(1408).mp4
│   │   ├── [511M] 1-10 jenkins构建后发布到k8s中(2333).mp4
│   │   ├── [380M] 1-11 对user服务进行ci构建(1450).mp4
│   │   ├── [529M] 1-12 kubesphere部署用户服务(2330).mp4
│   │   ├── [599M] 1-13 修改user服务的配置(1953).mp4
│   │   ├── [351M] 1-14 解决gmicro的ip地址的bug(1122).mp4
│   │   ├── [230M] 1-15 测试用户服务(0634).mp4
│   │   ├── [651M] 1-16 k8s的service的负载均衡和本地负载均衡的区别(1816).mp4
│   │   ├── [327M] 1-17 部署admin的api服务(1139).mp4
│   │   ├── [237M] 1-18 通过ingress暴露service(1421).mp4
│   │   ├── [305M] 1-2 通过多阶段构建对go镜像瘦身(1416).mp4
│   │   ├── [147M] 1-3 完善多阶段构建的dockerfile(0600).mp4
│   │   ├── [699M] 1-4 devops、ci、cd和gitops等概念(2137) .mp4
│   │   ├── [304M] 1-5 安装git parameter插件(1220).mp4
│   │   ├── [ 92M] 1-6 如何构建一个生产环境的镜像?(0632).mp4
│   │   ├── [293M] 1-7 pipeline参数化构建(1945).mp4
│   │   ├── [217M] 1-8 编写Dockerfile(0933).mp4
│   │   ├── [444M] 1-9 编写jenkinsfile完成docker构建和发布(1443).mp4
│   │   ├── [260M] 2-1 k8s学习路线(0855).mp4
│   │   ├── [278M] 2-10 课程总结和进一步学习建议(2112).mp4
│   │   ├── [218M] 2-2 pod是什么?(0923).mp4
│   │   ├── [557M] 2-3 kubectl相关的pods命令(1653).mp4
│   │   ├── [491M] 2-4 k8s的控制器 – deployment(1853).mp4
│   │   ├── [588M] 2-5 k8s的service(1846).mp4
│   │   ├── [317M] 2-6 k8s的ingress(1049).mp4
│   │   ├── [377M] 2-7 k8s的持久卷(1212).mp4
│   │   ├── [302M] 2-8 k8s的configmap、secret(0809).mp4
│   │   └── [422M] 2-9 k8s的架构(1340).mp4
│   └── 第34周 通过k8s部署服务/
│   ├── [261M] 1-1 基于docker进行go build构建(1408).mp4
│   ├── [506M] 1-10 jenkins构建后发布到k8s中(2333).mp4
│   ├── [419M] 1-11 对user服务进行ci构建(1450).mp4
│   ├── [528M] 1-12 kubesphere部署用户服务(2330).mp4
│   ├── [598M] 1-13 修改user服务的配置(1953).mp4
│   ├── [353M] 1-14 解决gmicro的ip地址的bug(1122).mp4
│   ├── [228M] 1-15 测试用户服务(0634).mp4
│   ├── [646M] 1-16 k8s的service的负载均衡和本地负载均衡的区别(1816).mp4
│   ├── [322M] 1-17 部署admin的api服务(1139).mp4
│   ├── [235M] 1-18 通过ingress暴露service(1421).mp4
│   ├── [305M] 1-2 通过多阶段构建对go镜像瘦身(1416).mp4
│   ├── [147M] 1-3 完善多阶段构建的dockerfile(0600).mp4
│   ├── [693M] 1-4 devops、ci、cd和gitops等概念(2137) .mp4
│   ├── [303M] 1-5 安装git parameter插件(1220).mp4
│   ├── [ 90M] 1-6 如何构建一个生产环境的镜像?(0632).mp4
│   ├── [288M] 1-7 pipeline参数化构建(1945).mp4
│   ├── [245M] 1-8 编写Dockerfile(0933).mp4
│   ├── [443M] 1-9 编写jenkinsfile完成docker构建和发布(1443).mp4
│   ├── [257M] 2-1 k8s学习路线(0855).mp4
│   ├── [275M] 2-10 课程总结和进一步学习建议(2112).mp4
│   ├── [218M] 2-2 pod是什么?(0923).mp4
│   ├── [554M] 2-3 kubectl相关的pods命令(1653).mp4
│   ├── [487M] 2-4 k8s的控制器 – deployment(1853).mp4
│   ├── [584M] 2-5 k8s的service(1846).mp4
│   ├── [315M] 2-6 k8s的ingress(1049).mp4
│   ├── [376M] 2-7 k8s的持久卷(1212).mp4
│   ├── [293M] 2-8 k8s的configmap、secret(0809).mp4
│   └── [419M] 2-9 k8s的架构(1340).mp4

└── 课程资料/
├── Go工程师体系课全新版电子教程/
│   ├── 第10周 服务注册发现、配置中心、负载均衡/
│   │   └── 第10周 服务注册发现、配置中心、负载均衡/
│   ├── 第11周 商品微服务的grpc服务/
│   │   └── 第11周 商品微服务的grpc服务/
│   ├── 第12周 商品微服务的gin层和oss图片服务/
│   │   └── 第12周 商品微服务的gin层和oss图片服务/
│   ├── 第13周 库存服务和分布式锁/
│   │   └── 第13周 库存服务和分布式锁/
│   ├── 第14周 订单和购物车微服务/
│   │   └── 第14周 订单和购物车微服务/
│   ├── 第16周 elasticsearch实现搜索微服务/
│   │   └── 第16周 elasticsearch实现搜索微服务/
│   ├── 第17周 分布式理论基础、分布式事务解决方案/
│   │   └── 第17周 分布式理论基础、分布式事务解决方案/
│   ├── 第19周 链路追踪、限流、熔断、降级/
│   │   └── 第19周 链路追踪、限流、熔断、降级/
│   ├── 第1周:go基础知识/
│   │   └── 第1周:go基础知识/
│   ├── 第20周 api网关、部署/
│   │   └── 第20周 api网关、部署/
│   ├── 第21周 开发规范和go基础扩展/
│   │   └── 第21周 开发规范和go基础扩展/
│   ├── 第4周 从0开始理解rpc和grpc/
│   │   └── 第4周 从0开始理解rpc和grpc/
│   ├── 第5周 grpc和protobuf进阶/
│   │   └── 第5周 grpc和protobuf进阶/
│   ├── 第6周 yapi文档管理、gorm详解/
│   │   └── 第6周 yapi文档管理、gorm详解/
│   ├── 第7周 gin快速入门/
│   │   └── 第7周 gin快速入门/
│   └── 第9周 用户服务的web服务@乐学编程 lexuecode.com/
│   └── 第9周 用户服务的web服务/
├── mxshop/
│   └── mxshop/
│   ├── [2.7K] go.mod
│   ├── [ 70K] go.sum
│   ├── tmp/
│   └── user_srv/
├── mxshop-api/
│   └── mxshop-api/
│   ├── [1.5K] go.mod
│   ├── [ 69K] go.sum
│   └── user-web/
└── 课程资料/
└── mxshop/
└── mxshop/

更新日志

2023-2-28:已更新完结,百度云盘下载。

发表回复

登录... 后才能评论