Go即Golang,是Google公司2009年11月正式对外公开的一门编程语言,它不仅拥有静态编译语言的安全和高性能,而且又达到了动态语言开发速度和易维护性。有人形容Go语言:Go=C+Python,说明Go语言既有C语言程序的运行速度,又能达到Python语言的快速开发。
数据库部分表ER图
Golang零基础入门实战教程(50讲):
一、Go语言介绍、GoWin环境搭建、Go语言开发工具Vscode配置(13分22秒)1、Go语言介绍2、Go语言成功的项目3、哪些大公司在用go语言4、Go语言前景5、Go环境win环境搭建6、Go语言开发工具Vscode配置7、Go语言vscode插件安装失败解决方法
二、Go语言Mac电脑环境搭建、开发工具Vscode配置(6分18秒)1、Go环境mac环境搭建2、Go语言开发工具Vscode配置3、Go语言vscode插件安装失败解决方法
三、GoLang定义变量、fmt包、Println、Printf、Go语言注释(17分59秒)1、Go语言定义变量2、fmt包、Print、Println、Printf3、Go语言中的注释
六、GoLang语言基本数据类型-整型详解(25分59秒)1、Golang有符号整形2、Golang无符号整形3、Golangunsafe.Sizeof4、格式化输出
七、GoLang语言基本数据类型-浮点型布尔型详解(30分45秒)1、Float322、Float643、Golang浮点型精度损失4、布尔型详解
十、GoLang中基本数据类型之间的转换(33分23秒)1、关于golang中的数据类型转换2、数值类型之间的相互转换3、其他类型转换成String类型4、String类型转换成数值类型5、数值类型没法和bool类型进行转换十一、Golang中的运算符-算术运算符、关系运算符、逻辑运算符、赋值运算符(36分59秒)
1、算术运算符
2、关系运算符
3、逻辑运算符
4、位运算符
5、赋值运算符
十二、Golang中的运算符的几个练习位运算符(15分57秒)
1、练习1:有两个变量,a和b,要求将其进行交换,最终打印结果
2、练习2:有两个变量,a和b,要求将其进行交换(不能使用中间变量),最终打印结果
3、练习3:假如还有100天放假,问:xx个星期零xx天
4、练习4:定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式
十七、Golang中的数组-数组的循环遍历(31分10秒)
1、Array(数组)的介绍
2、数组定义
3、数组的初始化
1、多维数组
1、切片是引用数据类型--注意切片的赋值拷贝2、append()方法为切片添加元素3、切片的扩容策略4、使用copy()函数复制切片5、从切片中删除元素6、练习题
二十一、Golang切片排序算法选择排序、冒泡排序、sort包排序(26分47秒)1、选择排序2、冒泡排序3、Golang内置Sort包对切片进行排序
二十二、Golangmap详解(上)(29分24秒)1、map的介绍2、map基本使用3、判断某个键是否存在4、map的遍历5、使用delete()函数删除键值对二十三、Golangmap详解(下)(30分52秒)
1、【案例】按照指定顺序遍历map2、元素为map类型的切片3、值为切片类型的map
二十四、Golang函数详解-函数定义、函数参数、函数返回值(1)(25分59秒)
1、函数定义2、函数参数3、函数返回值
二十五、Golang函数详解实例演示切片、map当做参数、函数变量作用域(2)(23分59秒)
1、切片作为参数2、Map对象作为参数3、函数变量作用域
二十六、Golang函数详解函数作为参数、函数作为返回值、匿名函数(3)(28分20秒)
1、函数作为参数2、函数作为返回值3、匿名函数
二十七、Golang函数详解函数递归、匿名函数、闭包(24分30秒)
1、函数递归2、匿名函数3、闭包
二十八、Golang函数详解deferpanicrecover(32分22秒)1、panic2、错误处理3、deferpanicrecover异常处理
二十九、Golangtime包以及日期函数(33分47秒)
1、time包
3、now.Format格式化输出日期字符串
10、定时器
三十、Golang指针详解、makenew方法分配内存(28分32秒)
1、关于指针
2、指针地址和指针类型
3、指针取值
4、指针传值示例
5、new和make
三十一、Golang中的结构体详解(1)(24分54秒)
1、关于Golang结构体
2、Golangtype关键词自定义类型和类型别名
3、结构体定义初始化的几种方法
三十二、Golang中的结构体详解结构体方法给自定义类型增加方法(21分26秒)(2)
1、结构体方法和接收者
2、给任意类型添加方法
3、结构体的匿名字段
三十三、Golang中的结构体详解嵌套结构体结构体继承(3)(30分57秒)
1、嵌套结构体
2、嵌套匿名结构体
3、关于嵌套结构体的字段名冲突
4、结构体的继承
三十四、Golang结构体和Json相互转换序列化反序列化(29分49秒)
1、关于JSON数据
2、结构体与JSON序列化
3、结构体标签Tag
4、嵌套结构体和JSON序列化反序列化
5、关于Map、切片的序列化反序列化
三十五、Golang中的gomod以及Golang包详解(1)(29分50秒)
1、Golang中包的介绍和定义
2、Golang包管理工具gomod
3、Golang中自定义包
三十六、Golang中的gomod以及第三方包(2)(18分22秒)
1、Golang中init()初始化函数
2、Golang中使用第三方包
三十七、Golang中的接口详解-接口介绍、接口定义、实现接口(1)
1、接口的介绍
2、Golang接口的定义
三十八、Golang中的接口详解、空接口、类型断言(2)
1、空接口
2、类型断言
三十九、Golang中的接口详解、结构体实现多接口、接口嵌套、结构体指针接收者实现接口(3)
1、结构体值接收者和指针接收者实现接口的区别
2、一个结构体实现多个接口
3、接口嵌套
4、结构体指针接收者实现接口
四十、Golang中空接口和类型断言使用细节-类型断言输出空接口类型结构体属性(4)(12分20秒)
四十一、Golanggoroutinechannel实现并发和并行(1)(30分49秒)
1、为什么要使用goroutine
2、进程、线程以及并行、并发
3、Golang中的协程(goroutine)以及主线程
4、Goroutine的使用以及sync.WaitGroup
5、启动多个Goroutine
6、设置Golang并行运行的时候占用的cup数量
7、Goroutine统计素数
8、Channel管道channel类型创建channelchannel操作管道阻塞forrange从管道循环取值
9、Goroutine结合Channel管道
10、单向管道
11、select多路复用
12、Golang并发安全和锁
13、GoroutineRecover解决协程中出现的Panic
四十二、Golanggoroutinechannel实现并发和并行(2)(18分32秒)四十三、Golanggoroutinechanne(3)(35分48秒)四十四、Golanggoroutinechanne(4)(33分37秒)四十五、Golanggoroutinechanne单向管道、select多路复用、goroutinepanic处理(5)(19分21秒)四十六、Golanggoroutine互斥锁读写互斥锁(6)(21分55秒)
1、互斥锁
2、读写互斥锁
四十七、Golang反射反射的引出、反射获取变量类型变量值、反射修改变量值(1)(41分12秒)
1、反射的引子
2、反射的基本介绍
3、reflect.TypeOf()获取任意值的类型对象
四十八、Golang反射结构体反射详解(41分51秒)
4、reflect.ValueOf()
5、结构体反射
6、不要乱用反射
四十九、Golang文件目录操作(1)(39分57秒)
1、打开和关闭文件
2、file.Read()读取文件
3、循环读取
4、bufio读取文件
5、ioutil读取整个文件
6、文件写入操作
7、文件重命名
五十、Golang文件目录操作(2)(26分17秒)
1、复制文件
2、创建目录
3、删除目录和文件
1、Gin环境搭建Gin程序的热加载Gin路由GETPOSTPUTDELETE(23分7秒)
1、Gin介绍
2、Gin环境搭建
3、Gin项目的热加载
4、搭建Gin环境
5、Gin路由简单的路由配置GETPOSTPUTDELETE
2、Gin路由中响应数据c.String()c.JSON()c.JSONP()c.XML()c.HTML()(23分12秒)
1、Gin中响应字符串
2、Gin中返回Json数据
3、Gin处理Jsonp请求
4、Gin返回Xml数据
5、Gin渲染Html
3、GinHTML模板渲染以及模板语法(上)
1、Gin模板配置的几种方法
2、{{.}}输出数据
3、模板中绑定结构体数据
4、模板中条件判断
5、模板中定义变量
6、模板中循环遍历range
7、with
8、define自定义模板
9、模板的引入
4、GinHTML模板渲染以及模板语法自定义模板函数静态文件服务(下)(29分14秒)
1、Gin模板语法嵌套template
2、Gin模板语法预定义函数
3、Gin自定义模板函数
4、Gin静态文件服务
5、GetPost以及动态路由传值、GetPost数据解析到结构体、PostXml数据解析到结构体
1、Get传参演示
2、Post传参演示
3、Post数据放在结构体中
4、RequestBody获取post提交的XMl数据
5、PostMan模拟提交数据PutDelete
6、Gin路由分组Gin路由文件抽离(17分54秒)
1、Gin路由分组
2、Gin路由文件抽离
7、Gin中自定义控制器以及实现控制器的继承(23分46秒)
1、Gin中自定义控制器
2、Gin中控制器的继承
8、Gin中间件详解路由中间件全局中间件路由分组中间件(38分55秒)
1、Gin中间件详解
2、路由中间件中间件执行流程
3、全局中间件路由分组中间件
9、Gin框架中自定义Model(8分13秒)
1、Gin框架中自定义Model
2、Gin控制器中引入Model
3、全局模板函数调用Model中的方法
10、Gin中实现单文件上传多文件上传(29分21秒)
1、Gin中实现单文件上传
2、Gin多文件上传--不同名字的多个文件
3、多文件上传--相同名字的多个文件
11、Gin按照日期存储图片(17分46秒)
1、根据日期生成目录
2、根据日期生成文件后缀名
3、上传类型判断
12、Gin中的Cookie以及多个二级域名共享cookie(23分57秒)
1、Cookie介绍
2、Cookie能实现的功能
3、设置和获取Cookie
4、多个二级域名共享cookie
13、GinSession的设置获取以及Session保存到Redis数据库实现分布式Session(20分17秒)
1、Session简单介绍
2、Session的工作流程
3、Gin中使用Session
4、基于Cookie存储Session
5、基于Redis存储Session
14、【Gin+Mysql】Mysql数据库安装、Navicat可视化工具安装(13分18秒)
15、【Gin+Mysql】连接Mysql、Mysql数据库表的增、删、改、查(38分42秒)
25Gin中使用go-ini加载.ini配置文件(16分12秒)
1、go-ini介绍
2、go-ini使用
3、从.ini中读取mysql配置
26、Gin仿小米商城项目(前端、后端、Api)功能介绍
1、仿小米商城项目功能介绍
2、数据库ER图(部分ER图)
27Gin仿小米商城项目大型企业级MVC架构搭建controller、model、view、middlewares、conf、static、routers设计(12分27秒)
一、关于MVC模式的简单介绍
二、GinMVC架构搭建
三、Gin大型企业级MVC架构详解
四、仿小米商城controller、model、view、middlewares、conf、static、routers设计
28、Gin仿小米商城项目后台管理系统控制器配置views模板分离后台管理系统局部刷新架构(43分12秒)
1、后台管理系统架构搭建模板控制器路由分组views模板抽离
2、后台管理系统局部刷新架构
29、Gin中使用base64Captcha生成图形验证码以及分布式架构中配置Captcha(53分7秒)
一、base64Captcha涉及的库
二、base64Captcha的基本使用
三、base64Captcha的数据存储到Redis中
1、Gin仿小米商城项目配置基类实现公共提示
2、配置sessionSession中存储结构体切片
3、配置GolangMd5加密
6、涉及的管理员数据库表分析
1、结构体切片转换成Json字符串、Json字符串转换成结构体切片
3、中间件中实现权限判断
32、Gin仿小米商城项目RBAC权限管理功能演示RBAC实现流程以及RBAC数据库ER图介绍(6分29秒)
1、RBAC权限管理功能演示
2、RBAC实现流程
3、用户RBAC权限管理树形图
33、Gin仿小米商城项目RBAC权限管理-角色的增、删、改、查(40分55秒)
1、创建角色表
2、实现角色的增删改查
34、Gin仿小米商城项目RBAC权限管理-管理员的增、删、改、查以及管理员和角色关联(上)(32分52秒)
1、管理员的增加
2、管理员和角色的关联
3、显示管理员的时候关联角色信息
35、Gin仿小米商城项目RBAC权限管理-管理员的增、删、改、查以及管理员和角色关联(下)
1、修改管理员以及管理员角色信息
2、删除管理员
36、Gin仿小米商城项目RBAC权限管理-权限列表权限增加权限表和权限表的自关联(38分45秒)1、权限的增加
2、权限的显示
3、权限和权限的关联查询37、Gin仿小米商城项目RBAC权限管理-权限列表权限修改权限删除(24分18秒)
1、权限的修改
2、权限的删除、删除权限判断是不是顶级模块下面有没有菜单和操作
1、获取PostCheckbox数据
3、选中当前角色拥有的权限
1、定义公共中间件文件
2、根据角色获取当前角色的权限列表,然后把权限id放在一个map类型的对象里面
3、获取当前访问的url对应的权限id
4、判断当前访问的url对应的权限id是否在权限列表的id中
5、配置排除权限判断的地址
41、Gin仿小米商城项目封装上传图片方法以及轮播图的增删改查(上)(31分11秒)
1、封装公共上传图片的方法
2、轮播图的增加
3、轮播图的显示
42、Gin仿小米商城项目封装上传图片方法以及轮播图的增删改查(下)(19分7秒)
1、轮播图的修改
2、轮播图的删除
43、Gin仿小米商城项目封装公共Api接口实现公共的ajax异步修改状态(33分12秒)
1、Ajax异步修改状态的实现流程
2、封装公共修改状态的方法
3、Ajax异步修改状态
44、Gin仿小米商城项目单击异步修改数量、修改排序、修改商品数量、修改文本(22分41秒)
1、异步修改排序的实现流程
2、封装公共修改数量的方法
3、实现单击异步修改排序修改商品数量等
45、Gin仿小米商城项目商品模块商品分类商品属性商品参数功能介绍以及数据表ER图关系分析(18分35秒)
1、商品分类介绍
2、商品类型属性介绍
3、商品表介绍以及商品关联颜色关联图库介绍
4、数据库表ER图以及数据库表关系分析
46Gin仿小米商城项目商品分类的增删改查以及商品分类的自关联(43分34秒)
47Gin仿小米商城项目商品类型的增删改查(19分30秒)
48Gin仿小米商城项目商品类型属性的增删改查(上)(44分29秒)
49Gin仿小米商城项目商品类型属性的增删改查(下)(21分51秒)
50、Gin仿小米商城项目GoLang图像处理剪切图片生成二维码(16分45秒)
1、GoLang图像处理、图片剪切
2、GoLang生成二维码
51、Gin仿小米商城项目商品模块增删改查商品模块数据库表分析、增加商品页面布局(1)(32分58秒)
1、商品模块增删改查商品模块数据库表分析
2、增加商品页面布局
3、调整左侧菜单52、Gin仿小米商城项目商品详情调用富文本编辑器wysiwyg-editor(15分40秒)(2)
1、wysiwyg-editor官方文档2、gin中使用wysiwyg-editor3、Gin中汉化wysiwyg-editor4、Gin中自定义wysiwyg-editor的导航条
53、Gin仿小米商城项目商品模块富文本编辑器wysiwyg-editor上传图片(12分4秒)(3)
1、wysiwyg-editor配置上传图片2、wysiwyg-editor配置上传视频
54、Gin仿小米商城项目增加商品页面选择分类、颜色、关联商品类型、动态生成商品类型属性表单(39分18秒)
1、增加商品页面选择分类、颜色、关联商品类型
2、动态生成商品类型属性表单
55、Gin仿小米商城项目商品模块配置批量上传图片插件以及实现图片批量上传(5)
1、配置批量上传图片插件
2、实现图片批量上传
56、Gin仿小米商城项目增加商品关联商品类型关联图库关联颜色开启多个协程执行增加(6)(47分11秒)
1、执行增加商品
2、增加商品关联商品类型、商品图库、商品颜色
3、开启多个协程执行增加
57、Gin仿小米商城项目修改商品关联商品类型关联图库关联颜色(7)(38分8秒)
1、修改商品
2、关联商品类型关联图库关联颜色
58、Gin仿小米商城项目修改商品执行修改(8)(24分48秒)
2、执行修改
59、Gin仿小米商城项目商品的增删改查-商品图库异步关联颜色、异步删除图库数据(20分2秒)
1、商品图库异步关联颜色
2、商品数据Api接口结合Ajax异步删除商品数据
60、Gin仿小米商城项目数据库分页算法、商品列表实现分页(26分7秒)
1、数据库分页算法
2、商品列表实现分页
61、Gin仿小米商城项目修改商品后返回到以前分页的页面以及商品列表页面实现搜索商品(25分14秒)
1、获取上一页地址
2、修改商品后返回到以前分页的页面
3、商品软删除,软删除后返回到以前分页的页面
4、商品页面实现搜索商品功能
62、Gin仿小米商城项目导航模块的增删改查以及导航和商品的关联以及导航的分页
1、导航模块的增删改查
2、修改导航后返回到以前分页的页面
63、Gin仿小米商城项目仿小米商城项目商店设置以及通过反射获取系统设置里面的数据(27分4秒)
1、商店设置
2、批量获取表单数据以及通过反射获取系统设置里面的数据
64、【Oss云存储】分布式架构之Golang上传图片到OSS云存储(33分54秒)
一、常见服务器架构
二、关于云存储
三、开启阿里云Oss存储
四、Golang上传文件到阿里云存储
65、【Oss云存储】Gin仿小米商城项目仿小米商城项目集成Oss云存储(39分14秒)
66、Gin仿小米商城项目上传本地商品图片实现裁剪Oss云存储中调用剪裁后的图片(26分6秒)
一、封装截取图片方法
二、开启多协程处理图片
三、Oss中调用剪裁后的图片地址67Gin仿小米商城项目OSS模式下后台富文本编辑器上传图片bug解决前台templates模板渲染(20分20秒)
一、商城PC端前台制作
二、商城PC端前台静态页面渲染
68、Gin仿小米商城项目前台templates模板分离首页顶部导航轮播图左侧分类数据渲染(37分8秒)
一、前台templates模板分离
二、顶部导航渲染模板筛选
三、轮播图数据渲染
四、左侧分类数据渲染关联查询排序子集筛选
69、Gin仿小米商城项目首页中间导航以及中间导航关联商品数据渲染(19分9秒)
70、首页楼层数据渲染封装根据分类获取商品的公共方法封装截取字符串方法(33分4秒)
一、封装根据分类获取商品的公共方法
二、封装截取字符串方法
三、渲染楼层数据
71、【Golang+Redis】Redis基本介绍(windowslinux)中安装redis(24分42秒)
一、Redis的简单介绍
二、windows中安装配置使用Redis
三、Golang中操作使用Redis
四、Linux(Centos7)中安装配置使用Redis
72、【Golang+Redis】Redis基本使用Redis(字符串、列表、集合、哈希)类型、Redis数据库的增删改查(21分55秒)
一、Redis的类型
二、Redis字符串
三、Redis列表
四、Redis集合
五、Redis哈希
73、【Golang+Redis】Golang操作Redis数据库(32分21秒)
74讲、【Golang+Redis】Golang操作Redis数据库、订阅发布、分布式采集数据架构的消息通讯(16分33秒)
一、Redis的订阅发布
二、Redis分布式采集数据架构的消息通讯
75、【Gin+Redis】Gin仿小米商城项目Redis配置写入配置文件封装公共的操作Redis方法缓存首页数据(30分35秒)
一、Gin中集成redis二、封装操作redis的公共方法三、Redis中存储字符串存储结构体
一、Redis缓存首页数据
77、列表页面数据渲染公共数据(顶部导航、中间导航、左侧分类)分离到base.go以及实现公共的左侧弹出分类(33分2秒)
一、列表页面数据渲染
二、公共数据(顶部导航、中间导航、左侧分类)分离到base.go
三、公共的左侧弹出分类
78、Gin仿小米商城项目商品列表数据渲染、商品列表分页、配置清除Redis缓存(38分3秒)
一、商品列表数据渲染
二、商品列表分页
三、后台配置清除Redis缓存的方法
79、自定义商品列表模板、商品详情数据渲染、选择版本、选择颜色、规格参数、关联赠品、关联图片...数据渲染(41分35秒)
一、自定义商品列表模板
二、商品详情数据渲染
三、选择版本、选择颜色、规格参数、关联赠品、关联图片配置
80、Gin仿小米商城项目商品详情数据渲染选择颜色以及选择颜色切换商品图片(33分44秒)一、商品详情颜色选中
二、选择颜色切换商品图片
81、Gin仿小米商城项目中使用gomarkdown模块来解析商品规格参数中使用的Markdown语法(28分20秒)一、Markdown语法介绍
二、Golangmarkdown包的使用
82Gin仿小米商城项目中自定义商品列表模板商品详情属性判断商品详情更多筛选属性(33分1秒)
二、商品详情属性判断
三、商品详情更多筛选属性
83Gin仿小米商城项目封装操作Cookie的方法加入购物车显示购物车数据(40分56秒)
一、封装操作Cookie的方法
二、加入购物车
三、显示购物车数据
84Gin仿小米商城项目显示购物车列表Ajax异步增加减少购物车数量(40分28秒)
一、显示购物车列表
二、Ajax一步增加减少购物车数量
85Gin仿小米商城项目checkbox改变购物车商品的选中状态以及删除购物车数据(32分6秒)
一、checkbox改变购物车商品的选中状态
二、删除购物车数据
86、Gin仿小米商城项目Golang中实现发送短信(14分11秒)一、找短信接口运营商
二、注册账户并实名认证
三、创建签名
四、创建模板
五、golang中现发送短信、发送语音短信
87、Gin仿小米商城项目注册流程、注册涉及的页面、数据库表、生成随机数(23分59秒)一、注册流程介绍
二、涉及数据库表介绍、以及定义操作数据库表的模型
三、页面渲染以及验证码配置
四、生成随机数
88、Gin仿小米商城项目注册第一步发送验证码防止短信轰验证当前IP以及手机号发送验证码的次数(41分20秒)
一、注册流程介绍
二、发送验证码防止短信轰验证当前IP以及手机号发送验证码的次数
89、Gin仿小米商城项目注册第二步倒计时重新发送验证码验证验证码(31分56秒)
二、去结算页面制作
四、常见加密算法DES加密解密Cookie加密
93、Gin仿小米商城项目去结算页面收货地址的增加修改显示(1)(39分20秒)
94、Gin仿小米商城项目去结算页面收货地址的增加修改显示(2)(28分35秒)
95、Gin仿小米商城项目选择默认收获地址(3)(18分40秒)
96Gin仿小米商城项目提交订单分别给orderorder_item表增加数据(32分18秒)
97Gin仿小米商城项目结算页面提交订单防止订单重复提交去支付页面制作(32分8秒)
98【支付宝支付】Gin仿小米商城项目支付宝支付之前的准备工作(20分56秒)
一、支付宝支付之前的准备工作
二、支付宝签名工具签名
三、配置签名提交审核
四、获取应用私钥、应用公钥、支付宝公钥、以及应用id
99、【支付宝支付】Gin仿小米商城项目中实现支付以及异步更新订单(29分15秒)
一、Gin仿小米商城项目中实现支付宝支付的几种方法
二、异步更新订单
四、把code_url转化成二维码
五、处理异步通知
六、Gin解析XML的数据
103、Gin仿小米商城项目用户中心制作以及订单列表数据渲染订单列表分页判断订单状态
一、订单列表数据渲染
二、订单列表分页
104、Gin仿小米商城项目订单列表显示订单状态筛选订单搜索订单用户中心左侧导航选中
一、订单列表显示订单状态
二、筛选订单
三、搜索订单
四、左侧导航选中
105、Gin仿小米商城项目订单详情页面数据渲染以及后台订单管理功能实现逻辑
106、【RESTfulAPI】Gin仿小米商城项目RESTfulAPI设计指南,为单页面应用VueAngualr提供api接口实现前后端分离,以及允许Cros跨域
一、RESTfulAPI设计指南
二、Gin中配置服务器端允许跨域
三、Gin中接收post过来的json数据
四、单页面应用VueAngualr提供api接口实现前后端分离
107、【RESTful+Jwt】GolangJWT教程_Gin+VueReactAngular基于JWT的权限验证视频教程(48分22秒)