GO语言工程实践基础知识笔记伴读 | 青训营

76 阅读1分钟

本文是青训营课程《Go语言工程实践》的基础知识笔记伴读总结。将从以下三点描述:

1. 并发编程

  • 协程Goroutine

并发: 多线程程序在一个核的cpu上运行

并行: 多线程程序在多个核的cpu上运行

Go可以充分发挥多核优势,高效运行 19457c9fa53d790dbdb81b0aa57680ac.png

  • 通道Channel

较线程相比,协程是用户态的一种资源,创建代价比较小,协程栈在KB级别,协程的创建由go语言本身去实现;相反线程是内核态的一种资源,其创建和销毁的代价比较大,线程栈在MB级别。 6759504727f5087bddaab0a72f6aec1c_720.png

  • 锁Lock 

0b1497f4a62ea7b3b6010affed8fabf7_720.png

  • 线程同步WaitGroup

维护了一个计时器,实现了三个方法

优化:快速打印14793d7969712df22fb1aecfa2baf294.png 以上属于编程进阶内容,考虑到工程项目的可用性和可靠性,工程实践中经常会用到。

2. 依赖管理

  • Gopath
  • bin:项目编译的二进制文件
  • pkg:项目编译的中间产物,可加速编译 767d0a37c16a019b51b0f60d64833c0b.png
  • Go Vendor

6b7133adbb10f4315afc38946ac5b4d3_720.png

b03aa18f7cb849e991c8c2adfd8d22cf.png

了解Go依赖管理演进的历程,通过课程学习以及课后实践能能够熟练使用go module 管理依赖。

3. 单元测试

  • 单元测试概念和规则:Go语言是一种强大且受欢迎的编程语言,它支持测试驱动开发(TDD)的开发方法。在Go中,编写单元测试是非常简单和直观的。在本文中,我将向您介绍如何使用Go语言编写高质量的单元测试。

5b8f07d8678821ef60cfd054056a4489_720.png

a868ad628407905647e9e11e0037d8e8.png

总结

通过上述三点,可以在工程实践时结合自己的思路进行实践编程。