Go语言上手-工程实践 | 青训营笔记

99 阅读1分钟

这是我参与「第三届青训营-后端场」笔记创作活动的的第四篇笔记 Go语言上手-工程实践\

1 并发与并行

线程与协程
线程跑多个协程,线程核心态,协程用户态
Goroutine
进程通信,建议通过通道共享内存,而不是通过共享内存进行通信

通道 channel
make进行创建通道,分为有缓冲通道和无缓冲通道

并发安全Lock
lock sync.Mutex
lock.Lock()
lock.Unlock()

2 依赖管理

go path->go vendor->go moudle

go path无法解决package的版本控制
go vendor引入依赖包副本,在每个项目下增加vendor文件,无法控制依赖的版本,更新项目可能出现依赖冲突
go module:通过go mod文件管理依赖包版本,通过go get/go mod指令工具管理依赖包

依赖管理三要素:go.mod Proxy go get/mod

依赖分发:GitHub,SVN

Proxy:GOPROXY=""

go get @update @none @v1.1.2 @23dfdd5 @master

go mod: init download tidy

3 测试

回归测试、集成测试、单元测试
测试代码以_test.go结尾

依赖-》稳定&幂等
Mock函数:为一个函数打桩、为一个方法打桩