Go语言入门--工程实践

62 阅读1分钟

Go语言入门--工程实践 一、并发 VS 并行 1.1 Goroutine

1.png 协程:用户态,轻量级线程,栈KB级别。 线程:内核态,线程跑多个协程,栈MB级别。

2.png 1.2 CSP(Com穆尼擦听 Sequential Processes)

3.png 提倡通过通信共享内存而不是通过共享内存而实现通信

1.3 Channel make(chan元素类型,【缓冲大小】) & 无缓冲通道 make(chan int) & 有缓冲通道 make(chan int,2)

4.png A 子协程发送0~9数字 B 子协程计算输入数字的平方 主协程输出最后的额平方数

5.png 1.4 并发安全Lock

6.png 1.5 WaitGroup 计算器

7.png 开启协程+1;执行结束-1;主协程阻塞知道额计算器为0.

二、依赖管理 2.1 Go 依赖管理演进

2.1.png 2.1.2 GO VEndor 项目目录下增加vendor 文件, 所有依赖包副本形式放在$ProjectRoot/vendeor 依赖寻址方式: vendor => GOPATH 2.1.2 Go Vendor --- 弊端

2.1.2.png 2.1.3 Go Module & 通过 go.mod 文件管理依赖包版本 & 通过 go get/go mod 指令工具管理一览宝

2.2 依赖管理三要素

  1. 配置文件,描述依赖 go.mod
  2. 中心仓库管理依赖库 proxy
  3. 本地工具 go get/mod

2.3.5
依赖分发---回源

2.3.5.png 依赖分发---Proxy

2.3.5.1.png 三、测试 3.1 单元测试

3.1.1 规则:

3.1.1.png 3.1.2 单元测试---assert

QQ图片20230528212035.png 3.1.5 单元测试---覆盖率

3.1.5.png