这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天。
今天上午的第一节课主要学习了并发和依赖管理的相关知识,包括协程、channel等。接着上午的第二节课主要学习了测试方面的知识,包括单元测试、mock测试和基准测试。最后,我们对一个Gin项目进行了学习和功能扩展。 Go语言的并发是指在单个程序中同时执行多个任务。这种并发可以通过 Go 的 goroutine 和 channel 来实现。
Goroutine 是 Go 语言中的轻量级线程,它可以并行执行多个任务。Goroutine 可以通过 go 关键字来启动,例如:go foo()。在同一个程序中可以同时启动多个 goroutine。
Channels 是 Go 语言中的通信机制,可以在 goroutine 之间进行数据传输。Channels 可以通过 make 函数来创建,例如:ch := make(chan int)。Channels 可以通过 <- 运算符来进行发送和接收数据,例如:ch <- x 和 x := <-ch。
Goroutine 和 channel 可以结合使用来实现多任务的并行执行和数据传输。通过使用这两个特性,可以实现高效的并发程序。
单元测试:单元测试是指对程序中独立的部分进行测试,通常是对函数或方法进行测试。单元测试的目的是确保程序中的各个部分能够独立正常工作。在 Go 语言中,可以使用 testing 包来编写单元测试。
Mock测试:Mock测试是指在测试中替换掉程序中的某些部分,通常是替换掉依赖的外部组件。Mock 测试的目的是确保程序能够正常工作,即使在依赖的组件发生故障时也能够正常工作。在Go语言中,可以使用mock库来编写mock测试。
基准测试:基准测试是指对程序的性能进行测试,通常是对程序的执行时间进行测试。基准测试的目的是确保程序的性能能够满足需求。在 Go 语言中,可以使用 testing 包中的 Benchmark 函数来编写基准测试。