这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
一、本堂课重点内容:
- 语言进阶
- 依赖管理
- 测试
- 项目实战
二、详细知识点介绍:
(一)语言进阶
-
goroutine 比线程更小,在内核态,栈在KB级
-
CSP 两种方式:
1、通过通信共享内存(通道,提倡方式) 2、通过共享内存通信(临界区)
3.channel:
1、有缓存通道make(chan int,2)
2、无缓存通道make(chan int)
4.并发安全lock
5.waitGroup同步
(二)依赖管理
-
gopath:项目代码直接依赖src下的代码
无法实现package的多版本控制
-
go vendor:项目目录下增加vendor文件夹,所有依赖包以副本形式放在此处
无法控制依赖版本 更新项目出现依赖冲突
-
go mod:通过go.mod文件管理依赖包版本
依赖管理三要素
1.配置文件,描述依赖 go mod
2.中心仓库管理依赖库 proxy
3.本地工具 go get/mod
(三)测试
- 单元测试
保证覆盖率、测试分支独立、测试单元粒度小、保证稳定性与幂等性
2. 基准测试
优化运行性能和cpu消耗
(四)项目实战——社区话题页面
分层结构
-
数据层(外部数据增删查改)
- 建立索引
-
逻辑层(处理核心业务逻辑输出)
- 参数校验、准备数据、组装实体
- 建议 使用并发
-
视图层(处理和外部的交互逻辑)
- 构件View对象
- 业务错误码
-
Router
- 初始化数据索引
- 初始化引擎配置
- 构建路由
- 启动服务
三、课后个人总结:
四、引用参考:
- 我参考了哪些外部博客/笔记/文章? juejin.cn/course/byte… juejin.cn/course/byte…