Go 语言进阶 - 工程进阶 | 青训营笔记

37 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第2天。 今天第一节课我了解到了协程这一概念以及go高效运行的原理--充分发挥多核优势,也跟着老师通过一些代码例子,比如go关键字打开协程加深了理解。了解了go语言是通过通信来实现共享内存而不是通过共享内存来通信,在这其中学习到了有缓冲通道和无缓冲通道,通过三协程打印0到9这10个数的平方加深了理解。然后是保证并发安全的lock,通过对比体现了lock的重要性,也学习到了go语言中实验阻塞的waitgroup方法以及其具体的用法。然后老师介绍了go依赖管理,分别介绍了gopath,govendor和现在的gomodule,介绍了每个方法的优略点以及为何一步步演化到如今的gomodule,重点介绍了gomodule中的三要素--go.mod文件,依赖库管理仓库proxy和本地工具go get/mod。第二节课首先通过一些事故让我们认识到测试的重要性,介绍了测试的三种类型--回归测试、集成测试和单元测试,从前到后覆盖率变大,成本变低,每种测试的侧重点也不同,了解了单元测试的大致流程,单元测试的规则,也通过例子加深了理解,其中涉及到assert包的运用、覆盖率的查看和单元测试需要的一些依赖,在测试需要依赖时可以使用的mock打桩包。然后是基准测试的规定和例子。最后是项目实践,了解了一个项目从无到有的大致流程和设计一个项目所需的准备工作--ER图、分层结构。在今天课中我遇到的问题是在安装gin这个web框架时不能安装成功,直接用go get下载失败后我手动clone安装还是不能成功,原因是因为缺少了一些依赖,我在搜索相关问题后得到了解决,自己手动clone那些依赖并创建文件夹将各种依赖放到对应的目录下,最终成功安装框架并且可以运行老师课上所展示的项目代码。