什么是工具链

从源码出发,支持你完成开发、构建、测试、调试、部署的完整过程

**编译构建:**把源码变成可运行的程序(如 cargo build、go build)

**依赖管理:**统一管理三方库版本、下载、更新(如 go mod、Cargo.toml)

**代码质量保证:**自动化测试、格式化、静态检查(如 cargo test、clippy)

**调试和发布支持:**调试运行、打包部署、发布(如 cargo run --release)

##理解指令

go build go mod init cargo build 等指令做了什么事情?

_go.mod_是做什么的,如果没有会怎么样?

go.mod 记录了模块名和依赖项

go build 编译当前模块的代码,生成可执行文件。

如果没有 go.mod:

无法使用模块化依赖(Go 1.11+推荐模块模式)

Go 会尝试用 GOPATH 模式构建(已逐渐废弃)

模块化依赖

每个模块只关心自己需要的依赖和版本,互不干扰。

例子: 项目 A 用的是 viper v1.9.0,项目 B 用的是 viper v1.8.1,互不冲突。 不像老的 GOPATH 模式下,全局只有一份依赖,项目之间可能“踩版本”。