GoCN社区Go高级工程师实战营课程介绍
本课程来自GoCN社区原价3499元,是一门学习Go高级开发的视频教程,本视频教程围绕三大高阶内容板块带你深入分析理解Go核心技术,培养对标P6+ /D7级Gopher,让你快速提升四大核心能力。
讲师:曹春晖(Xargin)
前蚂蚁金服技术专家,Go语言contributor
谢孟军(Asta)
GoCN社区创始人,世界知名Go技术专家
哪些人适合学习Go高级工程师实战营?
2年以上工作经验,具有一定的Go语言基础和工作基础,但在理论和技术上寻求突破的Go语言工程师
从其他语言(如Java,PHP)转Go,具有一定项目经验,用Go写过简单的项目,但不知道怎样利用Go的优势应对更为复杂的大型项目的工程师
你将学到以下核心内容
一. Go 程序是怎么跑起来的
教学目标:理解 Go 进程的启动过程,以调度循环串联相关的知识,理解 GPM 架构以及相关模型设计在不同阶段的问题及发展历史。
工作痛点:看着源代码,迷失在茫茫的数据结构和字段中;面试总是被人考调度循环,只是了解一些概念,无法融会贯通
详细内容:
Go 程序的启动过程
GPM 模型与调度循环
全局队列与局部队列
调度模型的发展历史
二. 语法背后的秘密
教学目标:通过学习 Go 内置的工具,了解如何将应用代码与底层代码做好对应;能够通过内置工具、调试器、源代码阅读对底层简单数据结构进行分析;
工作痛点:学会了语法,但是找不到实现代码,看别人的 blog 云里雾里;自己翻代码经常发现找不到实现部分,然后放弃。
详细内容:
学习基本的编译原理知识,了解基本的词法分析、语法分析、编译、链接流程
了解 Go 内置的编译/反编译工具:compile -S / objdump / SSAFUNC
使用工具分析 slice 的 append 实现
学习函数调用规约,Go 语言为什么可以实现多个返回值
其它语法糖分析:go func,select,channel send/recv
三. 神奇的内置数据结构
教学目标:学习 hashtable,timer 等复杂的数据结构实现;了解这些结构的进化历史和相关的优缺点;了解基本的 CSP 编程理念。
工作痛点:内置数据结构只会使用 api,碰到了相关的问题不知道该从何下手,对相关数据结构的设计缺乏宏观认识。
详细内容:
Go 语言的 hash 表实现:map 解析
Go 语言的 timer 实现演进
channel 的实现,CSP 理论基础
四. 编程语言与操作系统的桥梁
教学目标:了解基础操作系统接口知识,知道随着计算机体系结构的发展,系统调用是如何迭代进化的;知道如何去查询 syscall 的实现。
工作痛点:代码的行为和操作系统的关联关系难以理解,我写的 make 怎么就变成了 OS 的内存分配?
详细内容:
了解 linux syscall 的原理
理解 Go 语言是如何封装 syscall 的,哪些是 blocking syscall,哪些是 non blocking syscall
一些常见的 syscall 科普:clone,tgkill,futex,madvise
五. Go 的内存管理与垃圾回收
教学目标:理解基本的内存分配器原理;了解 tcmalloc 的设计理念;了解垃圾回收的繁多概念,建立相关的内存管理知识体系。
为什么内存分配要设计成多级结构?为啥 GC 的 stw 都已经 1ms 以下了,我的应用延迟还是这么高?
详细内容:
内存分配原理讲解
GC 设计讲解
memory barrier 讲解
GC 调步讲解
真实场景下的一些 GC 问题
六. Go 并发编程最佳实践
教学目标:理解常见并发编程模型:包括 fanin,fanout,or channel 等;知道常见的并发 bug;学会避免或排查线上的并发导致的 bug;
工作痛点:为什么给 string 变量赋值会 panic,难以理解;社区里的人对哪些操作是原子性的说法不一,令人困惑,我到底该相信谁。
详细内容:
Go 语言常见并发模式一览(参考 concurrency in go)
常见的并发 bug
如何尽量避免并发 bug 被带到线上系统
如何排查线上的并发 bug(如死锁、data race,map con write fatal等)
GoCN社区Go高级工程师实战营课程目录
模块01 Go 程序是怎么跑起来的/
模块02 语法背后的秘密/
模块03 神奇的内置数据结构/
模块04 编程语言与操作系统的/
模块05 内存分配/
模块06 Go 与并发/
模块07 netpoll 和抢占式调度/
模块08 人才培养体系/
模块10 社区优秀框架对比/
模块11 web 框架基本原理/
模块12 框架上的业务分层/
模块13 优雅的 Go 代码/
模块14 互联网数据中台/
模块15 Go 优化/
模块16 微服务的拆分难题/
模块17 CICD 实践/
模块18 监控与可观测性/
模块19 微服务基础设施/
模块20 大公司的稳定性密码/
模块21 Go语言前沿/
模块22 Go语言与未来架构/
模块23 以 go-micro 为例讲讲抽象/
模块24 cloud native go/
模块9 Go 的 GC/
资料代码/
GoCN社区Go高级工程师实战营课程视频随机截图:
GoCN社区Go高级工程师实战营资源目录截图
评论0