你将获得什么?
- 高效的编码规范与研发工具
- 深入 Go 语法背后的底层机制
- 高性能与可扩展的程序设计方法
- 复杂线上案例的全方位分析
- 大规模分布式系统的架构之道
课程简介
过去的十多年间,互联网行业迅猛发展,大数据、大规模集群计算、复杂的网络环境……各种新的挑战让人应接不暇。面对这些问题,一些早已发展成熟的语言显示出些许笨重和疲态,也就是在这一语境下,Go 语言应运而生。
Go 语言被称作是“云计算时代的 C 语言”,它专注于软件开发过程本身,简洁、易上手,且天生支持高并发编程。因此,也在众多编程语言中日益显示出其竞争力,市场需求有增无减。
然而,就是在这个崭新的赛道上,想要进阶成为 Go 高级工程师也并非易事。你可能有过这样的困惑:
- 疲于应付需求,程序缺乏设计,代码也不规范,最终导致程序越来越难扩展和维护;
- 不懂 Go 语法背后的运行机制,也不知道如何提升,无法解决复杂的系统问题;
- 难以跳出开发,从上层视角思考系统的技术选型与架构设计;
- 没有大规模云原生、分布式系统、微服务集群的实战经验,且缺乏学习路径。
为了解决这些问题,我们请到了深耕 Go 领域的郑建勋老师。他有着丰富的大规模云原生、分布式、微服务集群实战经验。
这门课程,他会把零碎的知识点串联起来,形成 Go 语言和系统设计的完整知识体系与方法论。然后理论融合实践,带你一起完成一个具备扩展性、高并发、分布式、微服务的复杂系统:
课程特色
课程主要有五大特色。
特色一:在“玩”中学,爬虫为基座
专栏以爬虫项目贯穿始终,从需求拆解和架构设计开始,带你独立完成能够支撑海量爬虫任务的高并发系统、具有故障容错能力的分布式系统、具备可扩展性和领域驱动的微服务系统。
特色二:谋定而动,写出“好”代码
专栏不只是讲解如何写代码,还会给出一流团队的编码规范与扫描工具。让我们摆脱过去的思维定势,摆脱疲于应付需求的现状,写出简洁、高效、健壮和可扩展的代码。
特色三:“深”入原理,理论结合实践
专栏在项目开发过程中,会融入底层原理知识,结合实践告诉你为什么代码要这样写,它背后的机制是怎样的。让你不仅知其然,也能够知其所以然。
特色四:硬核实战,“调”试复杂问题
专栏会为你总结出系统的性能分析方法论,并结合实战案例,手把手教你调试代码,定位线上复杂问题。并有节约了线上千台容器的性能分析实战案例。
特色五:不畏浮云遮望眼,掌“控”更大规模系统
此外,专栏还会跳出开发单一程序的狭隘视角,为你系统介绍大型互联网产品的整个生命周期。介绍大规模微服务集群的典型架构,深入探讨微服务协议、架构、治理等问题。
课程目录
开篇词|聚沙成塔,构建高性能、分布式爬虫项目
项目启动篇
01知识回顾:Go基础知识你真的掌握了吗?
02内有乾坤:Go语言六大基础知识体系
03进阶路线:如何深入学习Go语言?
04敏捷之道:大型 Go项目的开发流程是怎样的?
05全局视野:洞悉项目开发流程与规范
06免费的宝库:什么是网络爬虫?
系统设计篇
07冰川之下:深入Go高并发网络模型
08高性能设计:自顶向下的高性能 Go程序设计与优化
09破解性能谜题:性能优化的五层境界
10微服务设计:微服务架构与演进
11微服务挑战:微服务治理体系与实践
12分布式系统设计:数据一致性与故障容错的纠葛
13智慧之火:详解分布式容错共识算法
14谋定而动:爬虫项目需求分析与架构设计
Worker开发与原理篇
15众人拾柴:高效团队的Go 编码规范
16网络爬虫:一次HTTP请求的魔幻旅途
17巨人的肩膀:HTTP协议与Go标准库原理
18依赖管理:Go Module用法与原理
19从正则表达式到 CSS 选择器:4 种网页文本处理手段
20面向组合:接口的使用场景与底层原理
21采集引擎:实战接口抽象与模拟浏览器访问
22优雅地离场:Context超时控制与原理
23偷梁换柱:为爬虫安上代理的翅膀
24日志处理:日志规范与最佳实践
25运筹帷幄:协程的运行机制与调度器原理
26高并发爬虫:模型、控制与冲突检测
27掘地三尺:实战深度与广度优先搜索算法
28 调度引擎:负载均衡与调度器实战
29细节决定成败:切片与哈希表的陷阱与原理
30辅助任务管理:任务优先级、去重与失败处理
31规则引擎:自定义爬虫处理规则
32存储引擎:数据清洗与存储
33 固若金汤:限速器与错误处理
34服务注册与监听:Worker节点与etcd 交互
测试与分析篇
35 未雨绸缪:怎样通过静态与动态代码扫描保证代码质量?
36 测试的艺术:依赖注入、表格测试与压力测试
37工具背后的工具:从代码覆盖率到模糊测试
38高级调试:怎样利用 Delve 调试复杂的程序问题?
39 性能分析利器:深入 pprof与trace工具
40资源调度:深入内存管理与垃圾回收
41线上综合案例:节约线上千台容器的性能分析实战
Master开发与原理篇
42他山之石:etcd架构之美
43分布式协调:etcd 读写、MVCC原理与监听机制
44一个程序多种功能:构建子命令与flags
45Master 高可用:怎样借助 etcd实现服务选主?
46Master任务调度:服务发现与资源管理
47故障容错:如何在Worker 崩溃时进行重新调度?
48完善核心能力:Master 请求转发与Worker 资源管理
49服务治理:如何进行限流、熔断与认证?
部署篇
50不可阻挡的容器化:Docker 核心技术与原理
51多容器部署:如何利用 Docker Compose 快速搭建本地爬虫环境?
52容器海洋中的舵手:Kubernetes 工作机制
53 容器化实战:怎样搭建 Kubernetes 爬虫集群?
Go泛型:用法、原理与最佳实践
回头看:如何更好地组织代码?
结束语|登高望远,迈向新的高峰
期末测试|来赴一场满分之约吧~
讲师介绍
郑建勋,Go 语言技术专家,《Go 语言底层原理剖析》作者,Go 语言垃圾回收源码贡献者,Go 语言精度库 shopspring/decimal 核心贡献者,极客时间每日一课作者。曾获得电子工业出版社年度优秀作者与 2021 CSDN 年度十大图书作者。
作者曾就职于人工智能独角兽公司的视觉中台与大型互联网企业的业务中台,拥有丰富的大规模云原生、分布式、微服务集群的实战经验。确保了百万级流量系统的服务稳定性,并经历和主导了复杂业务系统的性能优化与系统重构。
此外,作者还具有丰富的教育经验,曾作为 51CTO 高级讲师,帮助了上百位同学从 0 到 1 用 Go 语言搭建出完整的项目,完成了职场上的进阶。他也为华为特训营、联想超级课等企业内训项目提供了培训和技术支持。2022 年,开始于 B 站、博客连载 Go 语言入门课程:《Go 语言开挂入门之旅》。