课程内容主要包含以下20个要点:
- 👉 Go语言的并发性能极高,是为并发而生的语言
- 🧠 Go语言通过高效的协程(Goroutine)调度模型充分利用多核计算机优势来实现协程的高并发操作
- 📶 协程(Goroutine)之间通过Channel通道进行通信来共享内存,避免直接共享内存从而引起并发安全问题
- 🤝 sync包下的Mutex互斥锁和WaitGroup可以实现协程间的互斥访问和同步,保证并发安全
- 📦 Go语言经历了GOPATH、GOVENDOR到现在的GOMOD三个依赖管理阶段,目的是实现普通环境的依赖隔离和控制依赖版本
- 🛠 GOPATH通过工程代码存放在SRC目录,依赖也存放在SRC中,无法实现依赖多版本控制
- 📂 GOVENDOR在项目目录下新增VENDOR文件夹存放依赖副本,但无法处理复杂依赖关系中的依赖冲突
- ⚙️ GOMOD通过go.mod文件定义依赖版本,通过goproxy实现中心化缓存,通过go get和go mod实现依赖管理
- 🏷 go.mod文件包含模块路径、Go语言版本、依赖列表和版本等信息,可以唯一确定一个依赖的版本
- 📈 Go模块版本规范包含语义版本和基于commit的伪版本,可以表示兼容和不兼容的版本关系
- 🤝 Go模块会选择依赖关系图中最低的兼容版本,实现向下兼容
- 🚧 goproxy实现了可靠和稳定的依赖获取,避免直接依赖代码托管平台的问题
- 📥 go get可以下载最新提交或指定 commit、tag、分支版本的依赖
- ✏️ go mod init初始化项目;go mod tidy清理无用依赖;go mod download拉取所有依赖
- 📦 GOPATH和GOMOD都实现了依赖隔离,但GOMOD提供了依赖版本控制的能力
- 🛠 GOMOD通过go.mod配置、goproxy缓存、go get/go mod工具实现了完整的依赖管理
- 🚀 并发编程可以大幅提升Go语言程序性能,依赖管理很好解决第三方包引入问题
- 🧑💻 通过并发编程模型和依赖管理实践可以提高Go语言编程效率
- 📝 go.mod配置依赖关系、goproxy实现代理缓存、go mod下载管理依赖至关重要
- 🎓 学习Go并发编程和依赖管理,在项目中应用这些知识,可以大大提升Go语言开发效率