Go实战案例
go的底层调用
go func 类似于多线程,轻易做到上万次并发,底层实现
reader := bufio.NewReader
reader.ReadByte(...) //缓存优化,底层实现
nc ip地址 端口 // 快速建立tcp链接
go进阶
本节课3个内容
- goroutine
- 协程
- channel
- <- 协程通信
- Sync
- lock 并发安全
Go依赖管理
GOPATH
- bin
- 编译二进制文件
- pkg
- 中间产物,加速编译
- src
- 项目源码
无法实现package多版本控制
Go Vender
Go Vender是一个用于管理第三方依赖包的机制。使用 vendoring 可以实现更好的依赖管理和版本控制,使得团队协作更加方便。当你将项目共享给其他人或将其部署到其他环境时,可以保证项目使用相同版本的依赖包,避免了不同环境之间的不一致性问题。
无法控制依赖的版本,更新项目可能出现依赖冲突,导致编译出错
Go Module
- 通过go.mod文件管理依赖版本
- 通过go get/go mod指令工具管理依赖包
使用 Go Modules,你可以在项目中直接导入所需的包,而无需事先安装到全局 GOPATH 中。当你导入一个新的依赖包时,Go Modules 会自动下载所需的包及其指定的版本,并将其存储在一个专用的缓存目录中(通常是
$GOPATH/pkg/mod目录)。这样,不同项目之间可以共享相同的依赖包,而不会相互干扰。 单元测试
覆盖率50%~60%,部分80%+
mock模拟