Go开发工程师:迎接上升风口,踏入蓝海行业!【8阶段完结】
适合零基础小白学习吗
小同学,当你问出这句话的时候,就说明你已经不是小白了,你是个很有主见的“大人”了,要是你问零基础适合学习么?我肯定的告诉你:非常适合,而且要相信自己不是小白,而是小牛~祝你更进一步,加油~
课程中的项目是真的企业级/商业级项目么?
同学这个问题是我见过问得最有水平的问题了~ 确实网络上充斥了很多美其名曰“企业级/商业项目”,然而当你咨询想要体验一下项目效果,这么最低的标准都达不到,也就是网络充斥很多打着“企业级”名号的耍流氓项目,他们连最低的企业级标准–可部署可上线标准都达不到! 那么,同学想一下这个问题:什么样的标准才能称之为“企业级/商业级”?那么我认为有如下几点标准必须符合: 1、 【最低标准】可部署可上线(课程两个分别打开微信,搜索“租辆酷车”、“波哥电商”体验项目) 2、 真正的三端分离项目(两项目都符合,以微商城举例) 3、 满足企业真实的开发场景(以共享出行项目为例) (1) 先进的google设计理念+架构实践 (2) 符合当前最前卫的开发流程 (3) “敏捷开发”、“领域驱动DDD”等的最佳实践 4、 符合企业标准架构演进:从三端分离到微服务化项目迭代 (1) 微电商项目(前端+后端+后台管理–>搜索微服务化) (2) 共享出行项目(Typescript前端+后端+Vue3.0后台管理–>云原生微服务)
试看链接:https://pan.baidu.com/s/10w62Gfe_2bIrWXYQXkCLRA?pwd=h7ca
相关推荐:
体系课-慕课Go开发工程师2023全新版
【Go语言中文网】资深Go开发工程师第二期
JKSJ-初级go工程师训练营【完结】
高性能GO企业级APM监控系统实战(完结)
Go语言开发分布式任务调度 ,轻松搞定高性能Crontab
第1周 Go语言极速上手
Go发展历程、语言特性快速预览、企业应用,go安装与环境配置,go语常用开发工具Goland,VisualStudio,LiteIde集成。go语言常用数据类型讲解。
课程安排:
1、Go发展历程、企业应用、语言特性
2、Go语言安装、Go语言环境配置
3、常量概述、常量的使用、常量的应用场景
4、变量概述、变量格式化输出
5、变量的使用、变量的内存布局
6、数值类型概述、不同数值类型表示范围、数据类型的使用
7、浮点概述、浮点类型的使用、复数的使用
8、字符概述、使用
9、字符串概述、字符串使用、字符串遍历、中文字符串的处理
10、布尔类型概述、使用
11、指针概述、指针使用、指针内存布局分析
12、指针内存布局分析、指针作用、指针运算与多级指针
13、数组概述、内存布局分析、数组的使用
14、数组的使用、数组作为函数参数意义、二维数组与多维数组
15、切片概述、切片使用、切片与数组内存布局分析
16、切片作为函数参数
17、map概述、定义与使用方式、map内存布局分析
18、map的使用方式、遍历、有序输出
19、结构体作为map的值、map切片
第2周 Go语言流程控制
本章节涉及到流程控制,函数,结构体,方法,go语言包与第三方扩展库,相关知识,并综合案例讲解本地包的使用。
课程安排:
1、条件控制、comma-ok模式测试多返回值、选择控制
2、选择控制、类型断言type-switch、循环控制
3、循环控制、goto+标签,break+标签、continue+标签
4、包的概述、包的作用、本地包的使用、访问控制
5、本地包的使用、github结合第三方扩展库的使用、本地包使用案例
6、函数概述、使用、多返回、作用域
7、递归函数、匿名函数、闭包
8、闭包、匿名函数补充、defer、函数重载、函数作为值类型
9、函数作为值、函数作为类型、init函数、main()函数、引用类型与值类型区别
第3周 Go结构体与面向对象
本章节涉及到结构体常用知识包括结构体最佳实践、结构体内存分析,方法的使用,面向对象三大特征封装,继承,多态,并综合案例加深面向对象的理解。
课程安排:
1、结构体概述、作用、自定义类型的两种方式、结构体的使用
2、结构体的使用、结构体注意事项
3、结构体的使用、结构体注意事项、结构体最佳实践、结构体内存分析
4、方法的概述、作用、使用
5、方法的使用、注意事项、方法与函数的区别
6、本章要点:总览Go的面向对象核心及初识面向对象(定义:权威+通俗)
7、【面向对象】三大特征(权威+通俗定义)
8、面向对象之【封装】基础实践(don’t say,show U the code)
9、面向对象之【继承】基础实践(don’t talk,show U the code)
10、面向对象之【多态】基础实践(don’t speak,show U the code)
11、拓展进阶:结合企业级业务分析面向对象的设计思想、作用
12、综合案例:面向对象最佳实践Coding(don’t speak,show me your code!)
13、面向对象总结
第4周 Go语言web编程
本章节涉及go语言web编程相关的知识,包括http协议,web请求与响应解析。
课程安排:
1、go语言web编程总览
2、web编程概述
3、web编程思维导图补充说明
4、web概述、web发展史、web访问流程分析
5、dns查询过程分析【没有上传】
6、http协议概述、http请求包与响应包分析
7、tcp连接流程分析、go语言web原理、go语言http请求分析
8、http请求handle,handlefunc分析
9、http请求获取url参数分析与实现
10、http请求获取头header参数分析与实现
11、http请求获取请求体数据分析与实现
12、http请求获取form与postform分析与实现
13、http请求获取multipartform分析与实现
14、http请求获取multipartform实现
15、http请求获取formvalue与postformvalue分析与实现
16、http请求获取formfile分析与实现
17、http请求获取FILES上传分析与实现
18、http请求获取FILES上传分析与实现
19、http响应分析与实现
20、会话处理原理分析
阶段二:租辆酷车小程序与TypeScript
第5周 小程序极速上手与租辆酷车初体验
初识小程序,理解小程序的作用,商业场景。配置环境,包括小程序账号,小程序开发工具,vscode。理解小程序运行机制,渲染机制,页面栈。开发第一款小程序,添加地图功能。
课程安排:
1、小程序的优缺点
2、小程序营销案例分析
3、小程序账号配置
4、小程序开发工具安装配置
5、vscode安装和配置
6、开发第一款小程序
7、理解小程序运行机制和渲染机制
8、理解小程序生命周期
9、小程序页面栈详解
10、小程序调试工具速成
11、添加地图组件,打造租辆酷车雏形
第6周 极速上手TypeScript应用
极速上手TypeScript。理解并开始使用TypeScript,包括基本数据类型,数组,对象,函数,方法。并且开始使用TypeScript开发小程序。
课程安排:
1、TypeScript简介
2、了解TypeScript vs JavaScript
3、TypeScript环境配置
4、开发第一款使用TypeScript的小程序
5、TypeScript的基本数据类型
6、逻辑控制
7、枚举类型
8、数组
9、对象及方法
10、函数的定义
第7周 精通Typescript
TypeScript的高级知识。这些知识点是跑步超越其他前端同事,做出高可靠性小程序及其他前端应用的关键。包括函数式编程,Promise详解,异步编程,接口,范型,面向对象,解决小程序开发典型难点。
课程安排:
1、函数式编程
2、一等公民及高阶函数
3、函数的闭包
4、函数式编程攻克小程序难点:页面状态维护
5、数组变换
6、Promise详解
7、同时等待多个Promise
8、异步编程
9、小程序API的Promise化
10、Promise攻克小程序难点:初始状态同步
11、接口及其高级技巧
12、接口的两种实现方式
13、类
14、范型
第8周 前端知识体系速成
本周我们将速成前端知识体系,学习最为有用的CSS必备技能,以及wxml前端模版的使用。这些技能每个开发者都必须掌握,包括后端开发。本周的课程将助同学掌握和补充全面的必备的知识体系。
课程安排:
1、为租辆酷车的原型开发确立目标
2、WXML语法速成
3、CSS选择器
4、控制元素位置
5、控制文字属性
6、flex弹性盒子布局详解
7、在小程序中使用css
阶段三:三端分离商业级微商城项目设计与实战
第9周 三端分离商业级电商项目–小程序前端布局
本章节涉及微商城小程序原型概括,框架布局,首页布局,分类页布局,商品列表页布局,商品详情页布局,购物车页布局,预下单页布局,搜索页布局,个人中心页,浏览足迹页 ,本章总结
课程安排:
1、微商城小程序原型概括
2、框架布局
3、首页布局
4、分类页布局
5、商品列表页布局
6、商品列表页布局
7、商品详情页布局
8、购物车页布局
9、预下单页布局
10、搜索页布局
11、个人中心页
12、浏览足迹页
13、本章总结
第10周 三端分离微商城-数据库与后台管理设计实战
本章节涉及会话处理,数据库操作,模板引擎,并带领各位同学实战微商城后台管理系统、数据库表分析, 手把手撸一套自己的go语言web框架,nginx路由转发与代理到goweb,项目线上部署。
课程安排:
1、微商城后台管理系统功能说明
2、数据库表概述
3、分类表分析与构建
4、商品表分析与构建
5、购物车表分析与构建
6、商家表分析
7、品牌表分析
8、订单表分析与构建
9、订单商品表分析与构建
10、用户表分析与构建
11、用户优惠券表分析与构建
12、快递表分析
13、搜索历史表分析与构建
14、优惠券表的分析与构建
15、商品收藏表分析
16、收货地址表与城市表分析
17、商品浏览足迹表分析
18、web框架构建概述
19、web框架构建之配置文件
20、web框架之数据库curd操作-增加
21、web框架构建之数据库curd操作-删改查
22、web框架构建之解耦程序与函数封装
23、web框架构建之实战登陆
24、web框架构建之实战登陆会话处理
25、web框架构建之实战登陆会话处理与完善项目框架
26、模板引擎与商品添加
27、模板引擎与商品列表、分页分析、表单多次提交
28、nginx安装引导、路由转发与反向代理到go服务器流程分析
29、微商城后台管理系统线上发布流程
第11周 三端分离微商城项目–后端接口设计与实现
本章节涉及实战微商城后端接口,beego与sqlx快速入门,并实现支付业务,从GOPATH迁移到Go modules部署项目上线。
课程安排:
1、beegoweb框架说明
2、beegoweb框架搭建
3、beego结合sqlx操作数据库,接口规范说明
4、beego结合sqlx操作数据库与beego使用
5、微商城小程序接口设计与说明
6、最近搜索分析与实现
7、热门搜索分析与实现
8、根据关键词搜索分析与实现
9、搜索接口与小程序结合实战
10、下单页接口概述
11、收货地址接口分析
12、预下单页收货地址分析、优惠券表分析实战、购物车表接口实战
13、微信登陆小程序流程分析
14、微信登陆小程序登陆接口与微信结合实战1
15、微信小程序支付分析与实战,构建统一下单与异步通知结构体
16、微信小程序支付分析,统一下单与数据签名
17、微信小程序支付分析,组装微信统一下单数据
18、微信小程序支付分析,微信小程序支付测试
19、微信小程序支付异步通知结果分析
20、包的概述与gopath缺点,go mod快速入门
21、微商城后端接口部署由GOPATH升级到Go modules 实战
22、go语言后端接口基于nginx转发配置与ssl证书申请流程
阶段四:“租辆酷车”共享出行产品设计与研发
第12周 租辆酷车小程序-前端设计初级
我们开始着手完全使用TypeScript开发小程序前端原型,完成首页地图页,汽车模型移动,注册页面表单及流程,行程中费用实时计算,初步搭建用户体验闭环。
课程安排:
1、框架的选择
2、首页地图页的实现
3、汽车位置的移动
4、注册页面布局
5、注册表单的实现
6、注册页面的状态转换
7、开锁页面的实现
8、行程中页面的实现
9、行程费用的实时计算
第13周 租辆酷车小程序-前端设计进阶
本周我们将玩转小程序中较为复杂的swiper以及滚动视图组件,实现强类型保护下的页面跳转路由,实现自定义组件,并综合运用所学知识,结合数据结构设计,实现流行的垂直同步导航功能,全面完成用户体验闭环。
课程安排:
1、swiper控件详解
2、强类型保护下的页面跳转路由
3、页面跳转参数的强类型化重构
4、滚动视图详解
5、垂直导航之数据结构设计
6、元素位置识别技巧
7、自定义组件之模态对话框
8、前端开发的总结
第14周 租辆酷车后端-接入微服务GRPC
关注前后端的消息传递,以及领域建模。我们采用GRPC定义领域模型,统领前后端开发及联调。使用GRPC对内,REST对外的标准接口方式进行设计,打通前后端数据通路,为业务开发打下坚实基础,体验最佳实践。
课程安排:
1、Go语言之vscode配置
2、GRPC简介
3、ProtoBuf编译器的安装
4、ProtoBuf的使用
5、定义复合类型和枚举类型
6、ProtoBuf字段的可选性
7、实现GRPC服务器及客户端
8、REST vs RPC
9、GRPC Gateway的介绍
10、用GRPC Gateway暴露REST接口
11、小程序访问REST接口
12、前后端数据类型交互的统一填坑
13、小程序使用npm构建
14、小程序请求的强类型化
第15周 微服务与存储设计+实战登录服务
在了解了微服务,理解微服务划分哲学着手开发后端微服务。我们首先攻克登陆环节。登陆看似普通实际流程复杂,涉及微信登陆,数据存储,令牌生成等多个环节。在数据存储中,我们选用NoSQL数据库。
课程安排:
1、进一步理解微服务
2、租辆酷车后端的微服务划分
3、小程序登陆过程分析
4、登陆服务的框架
5、获取OpenID
6、关系型数据库 vs 非关系型数据库
7、用docker来启动MongoDB
8、MongoDB的CRUD操作
9、用MongoDB Playground模拟用户登陆
10、实现微信登录数据绑定
11、用Go语言来控制Docker启动MongoDB
12、建立针对MongoDB的测试库
13、表格驱动测试的实践
14、登陆服务阶段性总结
第16周 租辆酷车权限设计与JWT实战
本周我们将学到安全方面的必备知识点,包括JWT令牌分发,RSA签名机制,JWT令牌校验,拦截器,go context上下文,客户端自动登陆及重试机制,完成登陆闭环。
课程安排:
1、JWT简介
2、用RSA非对称密钥签名JWT
3、JWT的Go语言实现
4、验证JWT Token
5、Go Context的概念及详解
6、创建行程服务
7、实现登陆状态拦截器
8、应用Identifier Type设计模式
9、客户端携带token
10、客户端自动登陆及重试
第17周 租辆酷车后端-行程服务实战+后端最佳实践
本周我们实现行程服务,并与前端联调走通整个行程生命周期。同学将看到测试驱动开发的大规模实战,体验完整的企业级开发流程和最佳实践。技术方面,我们采用防入侵层维护领域边界,采用乐观锁维护数据一致性。
课程安排:
1、行程服务的定义
2、行程的创建
3、行程的获取
4、对于ID的进一步重构
5、行程的测试
6、批量获取行程
7、用乐观锁更新行程
8、创建行程服务及防入侵
9、创建行程服务的测试
10、创建行程前后端联调
11、获取行程及行程列表的前后端联调
12、行程更新服务
13、行程生命周期的测试
14、行程生命周期的前端跳转
15、驾驶页面的行程更新
16、我的行程页面的更新
17、测试驱动修bug的标准流程
18、行程服务的总结
第18周 租辆酷车后端-身份服务与认证实战+云存储
本周我们将实现身份认证服务流程。包括驾照上传,信息上传,后台审核,前端跳转,重新审核等复杂业务流程。技术上采用云存储来存放驾照照片,采用MongoDB来存放数据及其匹配项。
课程安排:
1、身份服务的定义
2、身份服务的实现
3、客户端的对接
4、微信数据双向绑定
5、与行程服务的联调
6、云存储的简介和使用
7、用Go语言和小程序操作云存储
8、获取图片内容的流程分析
9、存储服务的定义
10、存储服务的数据库实现
11、存储服务接入云存储
12、使用GRPC客户端检查存储服务
13、与身份认证服务的关联
14、身份认证模块的前后端联调
15、阶段小结
阶段五:微商城架构演进之实现高并发与搜索微服务
第19周 微商城架构演进-高并发与限流
本章节对计算机常用概念进行快速普及,协程与channel相关操作,协程运行原理,模板并发请求实战与限流处理实战。
课程安排:
1、高级篇概述、进程线程分析、并发并行分析
2、分时系统与上下文概述、用户空间与内核空间概述、中断概述
3、协程运行原理分析
4、协程与waitgroup
5、channel相关操作
6、buffered channel与unbuffered channel执行流程分析与实战
7、channel中的死锁与解决
8、buffered channel实现斐波那契数列
9、单方向channel
10、单向channel与双向channel执行原理分析与实战
11、单向channel与双向channel结合实现生产者与消费者模型
12、select多路监听
13、nil channel与select结合禁用case并分析原理
14、协程,channel与select结合实现超时等待处理
15、项目实战使用buffered channel模拟并发请求
16、限流概述
17、限流实战
第20周 微商城架构演进-构建大文件日志处理系统
本章节内容scan、scanf、scanln用法,文件常用操作,json与xml处理,大文件处理,grep+awk实现ip、业务统计、微信交易日志统计、各年本年商品、品牌、分类成交额与成交量实现。
课程安排:
1、导图概述、系统调用流程分析、文件描述符作用、常用文件读取方式
2、scan、scanf、scanln、Sscan、Sscanf、Sscanln
3、Sscan、Sscanf、Sscanln
4、Fscan
5、io包接口分析与使用,自定义类型实现ioReade接口调用
6、自定义类型实现ioReade接口调用
7、ioWriter接口分析与使用,自定义类型结合channel实现ioWriter接口调用
8、os.File 创建文件、写入文件,os.Open 打开文件、读取文件
9、io.Copy并结构http实现下载网页
10、bufio包结构io.open打开文件按照指定分隔符读取数据
11、ioWriteString
12、ioutil快速读取
13、json概述、struct tag常见用法、json解析与反解析实战(struct、slice、map)、json从文件中解析
14、xml与结构体解析处理
15、大文件日志处理概述与日志分类
16、日志分类概述,使用grep+awk实现对ip的统计、不同业务的日志统计、微信交易日志的统计
17、grep+awk+cat对小文件合并成大文件做最终统计、各年与本年商品、品牌、分类成交额与成交量分析
18、go语言系统调用包实现各年与本年商品、品牌、分类成交额与成交量
第20+周 微商城架构演进-构建消息推送服务
本章主要讲解消息推送推拉模式,技术瓶颈,websocket握手流程、服务端与客户端实现、微信小程序连接websocket服务端实现,微信支付异步通知与权益处理分析,消息提醒分析与实战。
课程安排:
1、消息推送概述
2、消息推送之推拉模式
3、千万级消息推送技术瓶颈概述
4、websocket概述、握手流程分析、服务端实现、javascript请求websocket
5、javascript结合浏览器与websocket服务端通知实战
6、go语言websocket客户端与websocket服务端通知实战
7、微信小程序websocket连接websocket服务端实现1
8、小程序开发环境配置说明与项目实战说明
9、微信支付异步通知分析与权益处理分析
10、微信小程序周期连接与断开程序分析,消息提醒分析
11、微商城消息推送实战
第21周 微商城架构演进-为系统接入微服务
本章节主要讲解docker的使用,容器,镜像,仓库相关分集,微服务概述,单体应用优劣,服务注册与发现内容,consul服务发现流程,consul安装,简单服务注册与查询实现。
课程安排:
1、docker概述
2、docker安装
3、docker容器,镜像,仓库
4、docker的常见用法
5、单体应用的优劣
6、单体应用到微服务演变
7、微服务概述与技术指标
8、服务发现概述、方式
9、单点故障与分布式概述
10、Consul服务发现流程概述
11、Consul安装与启动操作
12、Consul服务注册与查询操作
第21+周 微商城架构演进-微服务进阶
本章节主要讲解gomicro相关操作,并会引入gin框架,对gin框架进行快速入门,micro服务注册到consul,并提供服务获取操作,常用服务调用方式,最后使用rpc实现一个简易的商品信息服务。
课程安排:
1、micro概述
2、gomicro安装与踩坑避坑指南
3、micro 手写第一个web api微服务
4、gin框架快速入门并生成web api
5、micro 服务注册到consul
6、服务注册发现以轮询的方式获取consul服务列表、selector随机选择
7、服务调用实例
8、以plugin插件的形式调用服务
9、rpc创建微商城商品服务并注册到consul
10、rpc获取商品信息
11、Go Micro API网关统一处理
第22周 微商城架构演进-基于es实现搜索分词优化
本章节主要讲解elasticsearch相关知识,包括es相关概述,docker安装es,es结合postman操作curd,常用中文分词器与中文分词组件。
课程安排:
1、es 概述
2、docker部署安装es
3、es RESTful API 结合 postman 操作 curd
4、es 常用分词器
5、es 中文分词组件
第22+周 微商城架构演进-实现搜索微服务化
本章节主要讲解如何将微商城当中的数据迁移到es,并搭建kibana分析与可视化工具,go对es的增删改查,全文检索与高亮显示,搜索grpc服务并注册到consul,微商城搜索迁移到es服务。
课程安排:
1、mysql数据同步到es
2、go对es的增删改查
3、全文检索与高亮显示
4、kibana部署
5、实现搜索grpc服务,注册到consul,并提供调用
6、微商城搜索接口迁移es搜索
阶段六:“租辆酷车”架构演进之高性能位置更新,后台管理与部署
第23周 租辆酷车-高性能实时位置服务+社交属性
本周将实采用websocket+rabbitMQ来实现汽车物料管理,汽车实时位置更新及用户位置分享,开始构建小程序用户社交属性。
课程安排:
1、车辆服务的定义
2、车辆服务的数据库实现
3、数据库初始化流程
4、RabbitMQ详解
5、连接RabbitMQ
6、实战websocket与小程序通信
7、连接小程序,websocket与RabitMQ,打通车辆位置更新
8、地图车辆位置更新的业务实现
9、行程生命周期的优化
第24周 租辆酷车-后台管理设计与实战
实现后台管理系统,包括后台登陆身份审核流程,车辆管理,二维码物料生成,采用Node.js+TypeScript+Vue3进行开发,打造Go+Vue的完整生态。
课程安排:
1、后台管理系统的需求分析
2、Vue与Vue3快速入门
3、为登陆服务添加后台管理员鉴权
4、身份审核的实现
5、车辆管理的实现
6、二维码物料批量生成
第24+周 租辆酷车-k8s+docker部署与上云
最后我们将完成整套微服务的部署,有了之前的配置化思路,提取配置会很容易,通过k8s,我们可以把这些微服务部署到本机环境以及真正上云。最后通过负载均衡器实现全站https化,为投入生产做最后冲刺。
课程安排:
1、Kubernetes简介和安装
2、在本地起一个Kubernetes集群
3、在云上构建一个Kubernetes集群
4、配置化所有微服务参数
5、构建自己的docker镜像
6、存放密钥的n种方法
7、yaml配置k8中的pod和服务发现
8、负载均衡器的配置
9、小程序+后台+云的联调
10、微服务更新流程
11、HTTPS证书及全站HTTPS化
12、上线步骤简介
13、尾声及展望