这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,这次课程我主要学习了GO语言的工程入门知识,依赖管理和测试。
1. GO依赖管理
GO的依赖管理主要经历了三个阶段,分别是GO PATH,GO vendor,GO Module。
1.1 GO PATH
GO PATH存在着无法实现package的多版本控制的问题。如下图所示:
1.2 GO Vendor
GO Vendor在项目目录增加了vendor文件,所有依赖包以副本形式放在vendor下。依赖寻址方式变成:vendor =>GO PATH。通过每个项目引入一份依赖的副本,解决了多个项目需要同一个package依赖的冲突问题。
但是GO Vendor存在无法控制依赖的版本问题,如下图所示:
归根到底vendor不能很清晰的标识依赖的版本概念
1.3 GO Module
GO Modules是Go语言官方推出的依赖管理系统,解决了之前依赖管理系统存在的诸如无法依赖同一个库的多个版本等问题。
2. 测试
在实际工程开发中,有一个重要概念就是单元测试。测试是避免事故的最后一道屏障。
测试自顶向下分为回归测试、集成测试、单元测试。回归测试一般是手动通过终端回归一些固定的主流程场景,集成测试是对系统功能维度做测试验证,而单元测试测试开发阶段,开发者对单独的函数、模块做功能验证,层级从上至下,测试成本逐渐减低,而测试覆盖率确逐步上升,所以单元测试的覆盖率一定程度上决定这代码的质量。