[ Go语音进阶–工程进阶|青训营笔记]

72 阅读2分钟

这是我参与「第五届青训营 」 笔记创作活动的第2天

一、本堂课重点内容 1.语言进阶 2.依赖管理 3.测试 4.项目实践 二、详细知识点介绍: 1.并发和并行 并发:多线程程序在一个核的cpu上运行 并行:多线程程序在多个核的cpu上运行 1.1 Goroutine 协程:用户态,轻量级线程,栈MB级别。 线程:内核态,线程跑多个协程,栈KB级别。 1.2 CSP 提倡通过通信共享内存而不是共享内存而实现通信 1.3 channel 无缓冲通道 make(chan int) 有缓冲通道 make(chan int,2) 1.4 并发安全lock 2.依赖管理 2.1 Go依赖管理演进 GOPATH → Go Vendor → Go Module

2.1.1 GOPATH bin 项目编译的二进制文件 pkg 项目编译的中间产物,加速编译 src 项目源码 2.1.2 Go Vendor 项目目录下增加vendor文件,所有依赖包副本形式放在$ProjectRoot/vendor,通过每个项目引入一份依赖的副本,解决了多个项目需要同一个package依赖的冲突问题。 2.1.3 Go Module 通过go.mod文件管理依赖包版本 通过go get/go mod指令工具管理依赖包 2.2 依赖管理三要素 配置文件,描述依赖 go.mod 中心仓库管理依赖库 Proxy 本地工具 go get/mod 3.测试 3.1 回归测试 3.2 集成测试 3.3 单元测试 所有测试文件以 _test.go 结尾 func TestXxx(*testing.T) 初始化逻辑放到 TestMain 中 三、实践练习知识点: 1.分层结构 数据层:数据Model,外部数据的增删改查(Repository) 逻辑层:业务Entity,处理核心业务逻辑输出(Service) 视图层:视图View,处理和外部的交互逻辑(Controller) 四、课后个人总结: 对于大量代码还是不太能掌握,基础知识略微单薄,需要课后继续巩固基础知识,完善知识体系后才能更好掌握新知识。