Tony Bai · Go语言第一课

Tony Bai · Go语言第一课

00 开篇词 这样入门Go,才能少走弯路

01 前世今生:你不得不了解的Go的历史和现状

02 拒绝“Hello and Bye”:Go语言的设计哲学是怎么一回事?

03 配好环境:选择一种最适合你的Go安装方法

04 初窥门径:一个Go程序的结构是怎样的?

05 标准先行:Go项目的布局标准是什么?

06 构建模式:Go是怎么解决包依赖管理问题的?

07 构建模式:Go Module的6类常规操作

08 入口函数与包初始化:搞清Go程序的执行次序

09 即学即练:构建一个Web服务就是这么简单

10 变量声明:静态语言有别于动态语言的重要特征

11 代码块与作用域:如何保证变量不会被遮蔽?

12 基本数据类型:Go原生支持的数值类型有哪些?

13 基本数据类型:为什么Go要原生支持字符串类型?

14 常量:Go在“常量”设计上的创新有哪些?

15 同构复合类型:从定长数组到变长切片

16 复合数据类型:原生map类型的实现机制是怎样的?

17 复合数据类型:用结构体建立对真实世界的抽象

18 控制结构:if的“快乐路径”原则

19 控制结构:Go的for循环,仅此一种

20 控制结构:Go中的switch语句有哪些变化?

21 函数:请叫我“一等公民”

22 函数:怎么结合多返回值进行错误处理?

23 函数:怎么让函数更简洁健壮?

24 方法:理解“方法”的本质

25 方法:方法集合与如何选择receiver类型?

26 方法:如何用类型嵌入模拟实现“继承”?

27 即学即练:跟踪函数调用链,理解代码更直观

28 接口:接口即契约

29 接口:为什么nil接口不等于nil?

30 接口:Go中最强大的魔法

31 并发:Go的并发方案实现方案是怎样的?

32 并发:聊聊Goroutine调度器的原理

33 并发:小channel中蕴含大智慧

34 并发:如何使用共享变量?

35 即学即练:如何实现一个轻量级线程池?

36 打稳根基:怎么实现一个TCP服务器?(上)

37 代码操练:怎么实现一个TCP服务器?(中)

38 成果优化:怎么实现一个TCP服务器?(下)

39 驯服泛型:了解类型参数

40 驯服泛型:定义泛型约束

41 驯服泛型:明确使用时机

元旦快乐 这是一份暂时停更的声明

加餐 作为Go Module的作者,你应该知道的几件事

加餐 如何拉取私有的Go Module?

加餐 我“私藏”的那些优质且权威的Go语言学习资料

加餐 聊聊Go 1.17版本的那些新特性

加餐 聊聊Go语言的指针

加餐 聊聊最近大热的Go泛型

大咖助阵 叶剑峰:Go语言中常用的那些代码优化点

大咖助阵 大明:Go泛型,泛了,但没有完全泛

大咖助阵 孔令飞:从小白到“老鸟”,我的Go语言进阶之路

大咖助阵 徐祥曦:从销售到分布式存储工程师,我与 Go 的故事

大咖助阵 曹春晖:聊聊 Go 语言的 GC 实现

大咖助阵 海纳:聊聊语言中的类型系统与泛型

期中测试 一起检验下你的学习成果吧

用户故事 罗杰:我的Go语言学习之路

结束语 和你一起迎接Go的黄金十年

结课测试 快来检验下你的学习成果吧!