00.课程简介
1.0设计原则
1.1了解 Go 语言的设计思路
1.2编写代码的速度与程序运行的速度
1.3代码的正确程度与软件的运行速度
1.4代码评审
2.0GO语言语法
2.1变量
2.2结构体类型
2.3 指针(第一段)
2.3 指针(第二段)
2.3 指针(第三段)
2.3 指针(第四段)
2.3 指针(第五段)
2.4常量
3.0数据结构
3.1面向数据的设计
3.2数组(第一段)
3.2 数组(第二段)
3.3 切片(第一段)
3.3 切片(第二段)
3.3 切片(第三段)
3.3 切片(第四段)
3.3 切片(第五段)
3.3 切片(第六段)
3.4映射图
4.0解耦
4.1方法(第一段)
4.1方法(第二段)
4.1方法(第三段)
4.2接口(第一段)
4.2接口(第二段)
4.2接口(第三段)
4.3内嵌
4.4导出
5.0组合
5.1给类型归组
5.2解耦(第一段)
5.2解耦(第二段)
5.2解耦(第三段)
5.3转换与断言
5.4接口污染
5.5模拟/模仿/仿制
5.6设计指南
6.0错误处理
6.1只用一个 error 值来表示错误
6.2用多个变量表示不同的错误
6.3用各种自定义的类型来表示出错时的情况
6.4通过行为来表示出错时的情况
6.5寻找 Bug
6.6把错误包装起来
7.0包的设计
7.1跟软件包有关的语言机制
7.2计指南
7.3面向包的设计
8.0goroutine
8.1操作系统调度器的原理
8.2 Go 语言调度器的原理
8.3创建 goroutine
9.0数据争用
9.1内存不一致与伪共享问题
9.2用原子函数实现同步
9.3用互斥锁实现同步
9.4竞争检测
9.5访问 map 时的数据争用问题
9.6涉及接口的数据争用现象
10.0通道
10.1信号的语义
10.2基本模式 第 1 段
10.2基本模式 第 2 段
10.2基本模式 第 3 段
10.3 Pooling 模式
10.4 Fan Out 模式 第 1 段
10.4 Fan Out 模式 第 2 段
10.5 Drop 模式
10.6 Cancellation 模式
11.0并发模式
11.1context 包第1段
11.1context 包第2段
11.2故障检测
12.0测试
12.1基本的单元测试
12.2表格形式的单元测试
12.3模拟 Web Server 的应答
12.4测试内部端点
12.5示例测试
12.6子测试
12.7代码覆盖度
13.0Benchmarking
13.1基本的 Benchmarking
13.2Sub Benchmark
13.3验证 Benchmark
14.0分析与追踪
14.1Profiling 指南
14.2栈追踪
14.3微观优化
14.4宏观优化 第1段
14.4宏观优化 第2段
14.4宏观优化 第3段
14.4宏观优化 第4段
14.5用 Tracer 追踪程序的执行情况
总结