from: 字节跳动-内部课程(掘金)
author: June
created: 2023-07-26 09:57
后端基础课程“第二枪”--Go语言工程实践,来自字节跳动后端工程师赵征的教学,条理清晰,循序渐进。本次课程分为四个部分,分别是语言进阶、依赖管理、测试以及项目实战,由浅入深加深对Go语言的使用能力。
语言进阶是在第一课的基础了解Go语言的语法之上进行,主要介绍并发编程。Concurrency 与 Parallel 的概念是并发编程必学内容,然后是进程、线程与协程,Go里的协程实现是Goroutine。之后是第二块CSP 通信共享内存,注意与通过共享内存实现通信的区别。在Go里使用的通道Channel,可以实现有缓冲与无缓冲类型。然后这块还有一个关键概念是涉及同步和并发安全,分别是锁的相关内容和同步报里的WaitGroup。这里有个小实例是多个协程打印,可以用WaitGroup实现同步阻塞。
依赖管理是进行大型项目和实际工程开发必须要考虑的事情,这一部分主要介绍了Go的依赖管理的演进路线和Go module实践。演进路线是从Go path到Go Vender再到Go module,在演进的过程中可以更好得解决控制依赖库的版本问题。
测试也是在实际开发中必须做好的事情,关系到产品的质量问题。以前做过一段时间的测试开发工程师,这部分有很多内容概念是已知的,比如单元测试和基准测试,但是还是学到了新的东西,比如在Go中是怎么实现的。这里让我记忆深刻的知识点是Mock测试,以前在进行测试开发工作中,就有类似于文件处理的依赖没有很好的测试方案,这里使用Mock测试的方式,就解决了对本地文件的依赖。
项目实践是本次课程的大头,将前文提到的三个part串联起来,这部分我也没有跟上节奏,需要在课下时间看项目代码再去学习,学习总结放在Part 2部分。