Go 语言进阶之工程篇 | 青训营笔记

61 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第2天。笔记旨在记录自己的学习过程以及跟更多人分享交流,重点讲干货,不扣细节,从整体认知。废话不多说,上内容!!!

本堂课重点内容

  1. 语言进阶
  2. 依赖管理
  3. 测试
  4. 项目实战

详细知识点介绍

语言进阶

从并发编程的视角了解Go高性能的本质。

  1. 并发VS并行

2.png 按我的理解:

并发 -> 接力赛跑,两个人或更多人,在同个赛道上,一个人跑一段

并行 -> 不同跑道,两个人或更多人一起跑

  1. Goroutine

3.png

  1. CSP

4.png

  1. Channel

5.png

跟大数据框架的一些Channel类似

  1. 并发安全 Lock

  2. WaitGroup

6.png

依赖管理

  1. 背景

  2. Go 依赖管理演进

1.png

2.png

  1. Go Module 实践

3.png

4.png

5.png

6.png

7.png

测试

  1. 单元测试

1.png

2.png

3.png

还有关于覆盖率,就是测试调用的代码比例

4.png

  1. Mock 测试

1.png

所谓打桩,就是A要替换B,那么A就是起打桩作用,这样整个测试就摆脱了本地文件的束缚和依赖。

  1. 基准测试

① 优化代码,需要对当前代码分析

② 内置的测试框架提供了基准测试的能力

实践练习例子

这里是一个项目实践的大致流程 : 需求设计 -> 代码开发 -> 测试运行

需求设计

社区话题页面

√展示话题(标题,文字描述)和回帖列表

√暂不考虑前端页面实现,仅仅实现一个本地web服务

√话题和回帖数据用文件存储

1.png

2.png

3.png

4.png

代码开发

5.png

6.png

7.png

8.png

9.png

10.png

11.png

12.png

13.png

测试开发

14.png

课后个人总结

  1. 了解了Go语言的一些重要概念以及依赖管理相关部分;
  2. 了解一个项目实践的大致流程,对于缺乏项目经验的我来说帮助很大;

关于文中代码项目下载

  1. 安装 Git,参考 链接
  2. 登录 Github 链接 clone
  3. 从 Github 上克隆项目,参考链接

引用参考

  1. 稀土掘金字节内部课
  2. Go语言入门工程实践
  3. 后端专场 学习资料一 第五届字节跳动青训营