本文是青训营课程《Go语言工程实践》的基础知识笔记伴读总结。将从以下三点描述:
1. 并发编程
- 协程Goroutine
并发: 多线程程序在一个核的cpu上运行
并行: 多线程程序在多个核的cpu上运行
Go可以充分发挥多核优势,高效运行
- 通道Channel
较线程相比,协程是用户态的一种资源,创建代价比较小,协程栈在KB级别,协程的创建由go语言本身去实现;相反线程是内核态的一种资源,其创建和销毁的代价比较大,线程栈在MB级别。
- 锁Lock
- 线程同步WaitGroup
维护了一个计时器,实现了三个方法
优化:快速打印
以上属于编程进阶内容,考虑到工程项目的可用性和可靠性,工程实践中经常会用到。
2. 依赖管理
- Gopath
- bin:项目编译的二进制文件
- pkg:项目编译的中间产物,可加速编译
- Go Vendor
- Go Module : go.dev/blog/using-…
了解Go依赖管理演进的历程,通过课程学习以及课后实践能能够熟练使用go module 管理依赖。
3. 单元测试
- 单元测试概念和规则:Go语言是一种强大且受欢迎的编程语言,它支持测试驱动开发(TDD)的开发方法。在Go中,编写单元测试是非常简单和直观的。在本文中,我将向您介绍如何使用Go语言编写高质量的单元测试。
- Mock测试:github.com/bouk/monkey
总结
通过上述三点,可以在工程实践时结合自己的思路进行实践编程。