- 更优异的性能表现
- 近C的执行性能
- 近解析型语言的开发效率
- 近乎完美的编译速度
- 强大的稳定性保障
- 更诱人的就业前景
- 学习曲线平缓,上手难度低
- 大厂和独角兽公司都在用
- 一线城市薪资可达30k-50k
- 更广阔的的技术应用
- 微服务高并发场景
- 中间件容器化
- 云原生物联网
- 区块链服务编排
代码量
Go核心技术模块
面试考点
Go第三方库
通过一个完善的电商系统快速体验系统开发全流程,熟悉web开发、从0到1熟悉微服务开发全流程,熟知分布式开发细节,把Go基础知识融会贯通,体验企业级项目全流程拓宽技术广度。
商品管理
支付管理
库存管理
订单管理
redis、mysql、elasticsearch、rocketmq、grpc、gin、viper、jaeger、nacos、sentinel、yapi、分布式锁、分布式事务、gorm、负载均衡、服务注册、服务发现oss、幂等机制、kong、jenkins等
点击体验电商系统:http://go.projectsedu.com/
点击体验电商后台管理系统:http://go2.projectsedu.com/
基于以上项目,带你从0到1自研微服务框架,熟悉底层细节、通过设计模式提高代码质量,源码解读,更规范的代码设计、更深入的底层细节理解。熟悉系统上k8s部署的完整部署流程,让你加强技术深度。
rpc服务
errors模块
log日志模块
链路追踪模块
监控模块
k8s部署
cobra、grpc源码、protoc插件开发、ast开发、errors设计、log日志设计、dtm分布式事务框架、kratos、go-zero、open-telemetry、prometheus、grafana、sqlmock、gomock、gomonkey、模糊测试、泛型、三层代码架构、设计模式、服务注册/发现源码、 负载均衡原理、CI/CD、k8s、kubesphere、harbor等
Go基础语法快速入门,本周通过和其他语言对比讲解go语言的细节,让你知其所以然。
Go到底支不支持面向对象? go如何实现动态类型?go的接口意味着什么?go的指针和c语言的指针有什么区别?本周将带您一一讲解。
go高性能的原理是什么?context的应用场景是什么?go如何进行模块管理?如何进行单元测试?本周为您详解。
rpc作为微服务的核心,深入理解rpc对于微服务开发来说非常重要,本周我们将从0开始一步步的理解rpc的核心概念,grpc的快速开发体验
微服务框架的搭建需要在rpc基础上添加对应的功能,深入理解protobuf和grpc更核心的功能对于后续框架的设计非常重要,为后续微服务打下坚实的基础
本周我们需要完成需求分析、在前后端管理中我们为什么需要yapi这样的接口管理系统、orm我们选择gorm,通过gorm基础知识的讲解我们将完成后续数据库操作的基础知识的准备
微服务的web层我们将采用gin作为开发框架,本周我们将体验gin的开发的各个细节,理解到gin的middleware的核心原理,这些后续深度集成gin打下坚实的基础
本周完成第一个grpc服务-用户服务,本周我们将完成用户相关的主要接口包括用户登录、用户注册、用户信息获取以及用户的基本信息修改等,在本周我们需要通过md5盐值加密用户密码保存的安全性问题
本周我们通过对gin的持续集成来将gin改造成一个适合微服务的接口层服务,本章节我们会介绍gin脚手架中的基础功能如:日志、配置文件等基础功能
本周我们会详细的理解到服务注册和发现组件-consul,将consul集成到各个微服务中,同时还需要统一的配置中心,将使用nacos作为配置中心,为grpc配置负载均衡策略
本周完成电商系统的核心微服务-商品服务,除完成商品的基本信息以外,还需解决商品分类、轮播图管理、品牌相关等大量和商品相关的接口,我们除了这些基本功能以外还需要解决另一个问题:物理删除还是逻辑删除?
本周重点完成两个任务:1. 将商品的grpc底层服务转换成http接口。 2. 基于阿里云的oss的图片存储微服务,我们将基于阿里云的oss改造成微服务。
本周完成独立的库存服务,库存服务在电商系统中有着非常重要的作用,对数据的一致性要求非常高,所以和库存相关的功能关系着是否能有效的解决好分布式系统中的重要问题包括:分布式锁、分布式事务等非常重要的功能
订单服务是整个电商的中的最重要也是最复杂的微服务,在订单服务中我们需要解决分布式事务的问题,我们将先完成订单和购物车相关的基本功能,为后面的分布式事务做好准备
以上我们基本上完成了电商核心的功能,本周我们完成剩余的功能,包括用户相关的操作比如收藏、收货地址管理等。最后我们将支付宝相关的支付功能集成到订单功能中,完成左右的功能之后我们将联调所有的接口
搜索功能作为电商中最常用的功能,搜索的性能和搜索效果非常重要,使用mysql自带的查询功能显然无法满足要求,本周我们将elasticsearch集成到电商系统中,来达到高性能和高相关度的搜索功能
本周我们需要解决非常重要的一个话题-分布式事务和幂等性。这两个知识点既是难点也是面试中的常见话题,所以理解分布式事务的理解决定了你是否能再高级面试中脱颖而出的关键。
本周我们需要实现基于可靠消息的最终一致性实现方案、我们将基于rocketmq来实现该分布式事务方案,在本章我们将会更加详细的理解到一个分布式事务实现的具体细节
一个高可用的微服务框架还需要解决负载的微服务间的调用链的监控和超时会带来的服务雪崩,本周会引入jaeger进行链路追踪,使用sentinel解决熔断、限流等问题。这都是微服务领域最新也是未来的使用趋势
前面已经开发出来大量的微服务,那如何对外暴露统一的接口等,本周会选择高性能的api网关-kong来完成从用户端到微服务端的调用以及接口管理,最后通过jenkins完成持续的部署和集成
本周详情:Go的目录结构怎么规范?git的代码分支、commit规范怎么管理?代码仓库应该是采用mono-repo还是multi-repo进行管理?go的代码静态检测怎么做?go的新特性泛型如何使用?
想要写好代码必须搞懂设计模式,如何在go中使用设计模式,有哪些常用的设计模式?如何写出方便测试的代码?如何对数据层代码进行单元测试?如何测试对结构体进行mock测试?测试框架怎么选择?是本周核心。
本周详情:如何将grpc接口直接转换为http接口? kratos和grpc-gateway如何解决grpc和http服务转换?系统启动如何支持命令行和参数?配置文件如何自动映射到go的struct?
日志包是否需要自己封装? 日志包封装有哪些细节需要考虑?日志的初始化应该如何做?日志如何和链路集成?生产环境中的日志应该如何处理?本周带你体验日志包设计的细节。
Go的error设计思想是什么?如何解决错误的错误栈?错误码如何设计?如何解决内部error到http错误状态码的处理?ast是什么?如何使用ast减少代码开发量?本周带你深入error设计细节
为什么我们的代码会不方便写单元测试?如何防止代码和gin耦合?如何解决代码和gorm耦合?如何通过代码分层结构减少代码耦合?如何建立通用项目启动过程?本周我们将要解决这些问题
为什么我们要进一步封装grpc?微服务框架应该具备哪些功能?如何将设计模式应用到框架开发中?grpc进一步封装需要具备哪些功能?本周带你实战封装技能。
本周讲解grpc的服务注册和发现原理、如何自定义服务注册和服务发现、grpc的负载均衡原理、以及如何自定义负载均衡。
如何同时启动grpc和gin服务?两者其中一个启动失败如何优雅处理?如何封装一套通用的认证系统支持各种认证方式?本周我们来讲解。
云原生环境下日志、链路、监控的终极解决方案opentelemetry如何封装到框架中?能否监控gorm、redis的执行性能,本周带你理解最强方案opentelemetry。
系统出错了如何发现?系统响应慢了如何发现?接口抖动过大如何发现? 本周带你理解监控的重要性。
如何通过gmicro重构用户服务?如何对用户服务进行详细的单元测试?商品数据的异构存储方案如何设计? 如何将用户服务集成到三层代码结构中?本周我们开始体会服务重构。
如何使用dtm进行分布式事务重构?企业级的订单存储方案如何设计?消费者服务应该如何设计?如何库存并发量大应该如何设计?本周我们开始重构核心订单服务和库存服务。
订单服务重构、wire进行ioc控制
如何构建go的镜像?如何通过多阶段构建docker镜像?如何将系统部署到k8s中?如何进行devops开发?本周将带你详细了解生产环境的项目部署。
devops和k8s
bobby
云原生系统架构师
10+年开发经验,目前负责公司云原生项目的架构设计和开发。精通go、python、Java等多种语言,在高并发、微服务架构设计、爬虫、分布式系统开发等方面均有丰富的工作经验,对云原生和分布式系统开发有深入的理解,在慕课网累计学员20000+,是学员口碑捧出来的金牌老师。
选课、学习遇到问题?
扫码添加指导老师 1V1 帮助你!
扫码加顾问老师 立即咨询