这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
一、本堂课重点内容:
- 本堂课的知识要点有:
- 1.语言进阶
- 2.依赖管理
- 3.测试
- 4.项目实践
二、详细知识点介绍:
- 1.语言进阶 从并发编程视角来看Go高性能的本质。 知识点:协程,go可以很容易写出协程 能保证收发数据的顺序
Go能保留共享内存来实现数据通讯,Go采用通讯来实现按共享内存。
有缓冲通道、无缓冲通道:区别——无缓冲:同步通道 通道容量表示通道(channel)内的数据量
带缓冲的通道可以解决生产和消费的不同步带来的问题
例子:不加锁时会导致结果错误,并发安全问题需要对付
waitgroup sync 协程间同步
- 2.依赖管理 了解Go语言依赖管理的演进路线
2.1开发包,学会利用现成的开发包 ,更加关注业务逻辑 GOPATH bin/pkg/src Go vender 副本可以解决不同项目需要不同版本的pkg的冲突 但是Go vender 也会发生冲突,来源于
go module go.mod 文件管理依赖文件包 依赖配置-go.mod 依赖配置-version
2.2 依赖分布:proxy 工具 有 go get 这部分其实有点不太明白了。。。 因为没有实践过。。 go module
- 3.测试 从单元测试实践出发,提升大家的质量意识 3.1单元测试、mock测试、基准测试 测试就是质量,质量就是生命。。 如果没有测试就上线,出了问题就会带来巨大损失 测试分为:回归测试、集成测试、单元测试。 3。2单元测试 可以提高效率。 一般覆盖率50-60%,较高可以80% 测试分支相互独立、全面覆盖; 测试粒度要小 3.3mock函数
打桩测试,不再依赖本地文件
3.4 基准测试 优化代码 内置测试框架进行基准测试
- 4.项目实践 从项目需求、需求拆解、逻辑设计、代码实践来感受真实的项目开发
三、实践练习例子:
- 有什么实践举例帮助理解知识点?
四、课后个人总结:
进度有点快,不过学到了很多